#include <stdio.h> /*计算0到10000的阶乘*/
#define max 10000
int main()
{
int result[50000]; //保存结算结果的数组
int num; //计算阶乘的数字
while((scanf("%d",&num))!=EOF)
{ result[0] = 1;
int weishu = 1; //结果位数
for (int i=1;i<=num;i++)
{
int res = 0; //进位
for (int j=0;j<weishu;j++)
{
int buf = result[j] * i + res; //计算结果
result[j] = buf % 10; //取当前位
res = buf / 10; //计算进位
}
while (res)
{
result[weishu++] = res % 10; //取当前位
res /= 10; //计算进位
}
}
for (int k=weishu-1;k>=0;k--)
{
printf("%d",result[k]);
}
printf("\n");
printf("共有%d位",weishu);
}
return 0;
}
大数阶乘
最新推荐文章于 2022-07-13 11:43:03 发布