本人菜鸟,请大神给写个小程序。。。语言不限
请写一段程序计算n的阶乘末尾有多少个0,例如5! = 120 末尾有1个0,10!= 3628800末尾有2个0。
[解决办法]
楼上代码正解~
思路:0 的出现总是由 5*2 得来的,而每次出现含5因子的数时总有大于5因子个数的2存在,所以求n!有多少个0结尾就是求 1-n 中有多少个5因子!
[解决办法]
二楼高见!膜拜二楼!
发下我写的代码!新手,帮顶的!
#include<stdio.h>long Factorial(int);int ZeroNum(long);int main(){ int n; long fac; int count; printf("请输入n值:"); scanf("%d",&n); fac=Factorial(n); count=ZeroNum(fac); printf("%d的阶乘为%d,它末尾有%d个0\n",n,fac,count); return 0;}long Factorial(int n){ long fac=n; while(n>1) { --n; fac=fac*n; } return fac;}int ZeroNum(long fac){ int count=0; while(fac%10==0) { ++count; fac=fac/10; } return count;}
[解决办法]
我是来膜拜二楼的