阶乘计算升级版(算了一下午终于搞对了)
发布时间
阅读量:
阅读量
#include <stdio.h>
void Print_Factorial ( const int N );
int main()
{
int N;
scanf("%d", &N);
Print_Factorial(N);
return 0;
}
/*先写写思路
1.ans是答案数组,因为要不断的计算,答案数组还要继续转换成另一个int数组。
2.然后再把int数组里的每个数的值存到新的数组里。
*/
#include <string.h>
void Print_Factorial ( const int N ){
char ans[10000];
int size=1,i,j,t=0;
ans[0]='1',ans[1]='\0';
if(N<0){
printf("Invalid input");
return;
}
/*copy是从各位到个位开始存的*/
for(i=1;i<=N;i++){
char copy[10000];
int k=0;
for(j=0;j<size;j++){
t=t+((ans[j]-'0')*i);/*算每一位与i的成绩*/
copy[k++]=t%10+'0';/*将答案保存在copy这个字符数组里*/
t/=10;
}
if(t){
while(t){
copy[k++]=t%10+'0';
t/=10;
}
}
copy[k]='\0';
size=strlen(copy);
strcpy(ans,copy);/*将答案重新更新到ans里*/;
t=0;
}
for(i=size-1;i>=0;i--){
printf("%c",ans[i]);
}
}
全部评论 (0)
还没有任何评论哟~
