// 曾在OJ上因为定义的数组不够大而 Runtime Error,在这里我定义数组长度为100W
#include <stdio.h>
#define max 1000000
int arr[max] = {1};
int main(void)
{
// dgt表示位数,up表示进位
int i, j, n, up = 0, dgt = 1;
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
for(j = 0; j < dgt; j++)
{
arr[j] = arr[j] * i + up;
up = arr[j] / 10;
arr[j] %= 10;
}
while(up)
{
arr[dgt++] = up % 10;
up /= 10;
}
}
for(i = dgt - 1; i >= 0; i--)
printf("%d",arr[i]);
return 0;
}
高精度阶乘运算 — C语言
最新推荐文章于 2023-11-13 14:40:16 发布