统计n!尾部零
#include<stdio.h> #include<math.h> void main() { int j,k,m,n,a[40000]; long g,t; double s; printf("请输入正整数n(n<10000):"); scanf("%d",&n); s=0; for(k=2;k<=n;k++) s+=log10(k); m=(int)s+1; //求n!的位数 for(k=1;k<=m;k++) a[k]=0; //数组清零 a[1]=1; g=0; for(k=2;k<=n;k++) for(j=1;j<=m;j++) { t=a[j]*k+g; //k=2,j=1 t=2,a[1]=2,g=0 j=2 t=a[2]*2+0 a[2]=a[2]*2 a[j]=t%10; g=t/10; } j=1; while(a[j]==0) j++; printf("%d!尾部连续零共有%d个。\n",n,j-1); }