-
输入
- 输入一个整数m(0<m<=5000) 输出
- 输出m的阶乘,并在输出结束之后输入一个换行符 样例输入
-
50
样例输出
-
30414093201713378043612608166064768844377641568960512000000000000
-
-
**数组开到2w以上才能ac,用数组还原进位计算过程,
-
-
#include <stdio.h> int main() { int n; scanf("%d",&n); int i,j,p,h; int a[50000]={0}; a[1]=1; p = 1; for(i=2;i<=n;i++) { for(j=1,h=0;j<=p;j++) { a[j] = a[j]*i + h; h = a[j]/10; a[j] = a[j]%10; } while(h) { a[++p] = h%10; h = h/10; } } for(i=p;i>=1;i--) { printf("%d",a[i]); } printf("\n"); return 0; }
NYOJ-28 大数阶乘
最新推荐文章于 2021-05-17 20:21:50 发布