NYOJ 28(大数阶乘)
View Code #include<stdio.h> #include<string.h> #define N 16325 int a[N]; main() { int i,j,m; scanf("%d",&m); memset(a,0,sizeof(a)); a[0]=1; for(i=2;i<=m;i++) { int c=0; for(j=0;j<N;j++) { int s=a[j]*i+c; a[j]=s%10; c=s/10;//进位 } } for(j=N-1;j>=0;j--)//结果是倒序存放的 { if(a[j]) break;//并未继续执行j-- } for(i=j;i>=0;i--)//退出时j嗨未自减 { printf("%d",a[i]); } printf("\n"); return 0; }
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.