描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
- 输入
- 输入一个整数m(0<m<=5000)
- 输出
- 输出m的阶乘,并在输出结束之后输入一个换行符
- 样例输入
50
样例输出
30414093201713378043612608166064768844377641568960512000000000000
测试代码
1 #include <stdio.h> 2 #include <string.h> 3 4 #define N 3000 5 6 int main() 7 { 8 int a[N]; 9 int n, i, j, c, s; 10 memset(a, 0, sizeof(a)); 11 scanf("%d", &n); 12 a[0] = 1; 13 for (i = 2; i <= n; i++) 14 { 15 c = 0; 16 for (j = 0; j < N; j++) 17 { 18 s = a[j] * i + c; 19 a[j] = s % 10; 20 c = s / 10; 21 } 22 } 23 for (i = N - 1; i >= 0; i--) 24 { 25 if (a[i]) 26 { 27 break; 28 } 29 } 30 for (j = i; j >= 0; j--) 31 { 32 printf("%d", a[j]); 33 } 34 return 0; 35 }
时间: 2024-12-15 01:47:18