n!阶乘后有几个零?
程序代码:
#include<stdio.h> long int fact(long int n); int main() { long int n,sum; while(scanf("%ld",&n)&&n) { sum=fact(n); printf("%ld\n",sum); } return 0; } long int fact(long int n) { long int k,f=0; if(n<5) f=f+0; else { k=n/5; f=k+fact(k); } return f; }
我的思路是调用递归函数,将大数一次次地除以5;但是交上去就是WA,据说测试数据是要求输出30000多个零,可是我的程序能算到一亿的阶乘后面的零的个数,难道还不够吗?求高手解答!