大数阶乘
程序员文章站
2022-05-12 13:40:55
...
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0
输出
输出m的阶乘,并在输出结束之后输入一个换行符
代码段
#include <stdio.h>
int main()
{
int carry,n,j;
int a[40001];
int digit;
int temp,i;
while(scanf("%d",&n)!=EOF){
a[0]=1;digit=1;
for(i=2; i<=n; i++)
{
for(carry=0,j=1; j<=digit; ++j)
{
temp=a[j-1]*i+carry;
a[j-1]=temp%10;
carry=temp/10;
}
while(carry)
{
//digit++;
a[++digit-1]=carry%10;
carry/=10;
}
}
for(int k=digit; k>=1; --k)
printf("%d",a[k-1]);
printf("\n");
printf("length=%d\n",digit);
}
return 0;
}
程序运行结果图
编译过程
上一篇: 真题演练-大数存储问题(阶乘计算)
下一篇: 前 n 项求和