读书人

本人初学者请大神给写个小程序。语言

发布时间: 2012-08-27 21:21:57 作者: rapoo

本人菜鸟,请大神给写个小程序。。。语言不限
请写一段程序计算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;}
[解决办法]
我是来膜拜二楼的

读书人网 >C语言

热点推荐