//求100!的前100位
//简单:用数组记录,然后计算进位,也确实只能这样,因为不可能有无限长度的数组
#include<stdio.h>
#include<stdlib.h> // system("pause");
int main()
{
int a[200] = {0};
a[0] = 1;
int len = 1;
for(int x=2;x<=100;x++)
{
for(int i=0;i<len;i++)
a[i] *= x;
for(int i=0;i<len;i++) // 进位
{
while(a[i] >= 10) // 用while不用if
{
a[i+1] += a[i]/10;
a[i++] %= 10;
}
if(len < i+1) len = i+1;
}
}
for(int i=len-1;i>=len-100;i--) // 打印前100位
printf("%d",a[i]);
//system("pause");
return 0;
}
100!的前100位
最新推荐文章于 2022-01-18 18:27:51 发布