阶乘 (大数)
#include <stdio.h> #include <string.h> const int maxn = 3000; int f[maxn]; int main() { int i,j,n; scanf("%d",&n); memset(f,0,sizeof(f)); f[0]=1; for(i=1; i<=n; i++) { //乘以i int c=0; for(j=0; j<maxn; j++) { int s=f[j]*i+c; f[j]=s%10; c=s/10; } } for(j=maxn-1; j>=0; j--) if(f[j]) break;//忽略前导0 for(i=j;i>=0;i--) printf("%d",f[i]); putchar('\n'); return 0; }