64,676
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#define N 10000
int main(int argc, char **argv)
{
int data[N] = {1};
int digit, i, index, carry;
int tmp;
for (i=2, digit=0; i<=10000; i++) //计算1000!
{
for(index=0, carry=0; index<=digit; index++)
{
tmp=data[index]*i+carry;
data[index]=tmp%10000;
carry=tmp/10000;
}
while (carry)
{
data[++digit]=carry % 10000;
carry /= 10000;
}
}
printf("%d", data[digit]);
for (i=digit-1; i>=0; i--)
{
printf("%04d", data[i]); // 控制数组格式!
}
return 0;
}