本人初学者,请大神给写个小程序。语言不限
本人菜鸟,请大神给写个小程序。。。语言不限
请写一段程序计算n的阶乘末尾有多少个0,例如5! = 120 末尾有1个0,10!= 3628800末尾有2个0。
------解决方案--------------------
楼上代码正解~
思路:0 的出现总是由 5*2 得来的,而每次出现含5因子的数时总有大于5因子个数的2存在,所以求n!有多少个0结尾就是求 1-n 中有多少个5因子!
------解决方案--------------------
二楼高见!膜拜二楼!
发下我写的代码!新手,帮顶的!
请写一段程序计算n的阶乘末尾有多少个0,例如5! = 120 末尾有1个0,10!= 3628800末尾有2个0。
------解决方案--------------------
楼上代码正解~
思路:0 的出现总是由 5*2 得来的,而每次出现含5因子的数时总有大于5因子个数的2存在,所以求n!有多少个0结尾就是求 1-n 中有多少个5因子!
------解决方案--------------------
二楼高见!膜拜二楼!
发下我写的代码!新手,帮顶的!
- C/C++ code
#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; }
------解决方案--------------------
我是来膜拜二楼的