求10000以内用递归求n的阶乘乘

java阶乘计算获得结果末尾0的个数代码实现
转载 & & 作者:
今天偶然看到一个要求,求之间的数n的阶乘并计算所得的数n!末尾有多少个0?要求: 不计算 只要得到末尾有多少个0就可以了,看下面的代码吧
看到题目后,分析了下, 10的阶乘就已经很大了。计算出来再得到这个末尾的0的个数,完全不现实,即使实现了也是很麻烦的。
后来想某个数的阶乘中乘积有5结尾的数字的时候就应该在结果的末尾产生一个0.
付诸实现,测试了几个, 没出错。
贴出来, 大家看看, 有问题了及时指教:
代码如下:/**&&&& * 求之间的数n的阶层并计算所得的数n!末尾有多少个0?&&&& */&&& public static void test2(int number){&&&&&&& int count = number/5;&&&&&&& System.out.println(count);&&& }
又复习了下数学知识,上面的计算应该是不对的。
应该写成下面这样,每到5的倍数时候会+1 。
代码如下:int x = 10000;while (x&0){&&&&& count = count + x / 5;&&&&& x = x / 5;}System.out.println(count);
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)总时间限制:&5000ms&内存限制:&655360kB描述
求10000以内n的阶乘。
输入只有一行输入,整数n(0&=n&=10000)。输出一行,即n!的值。样例输入
代碼實現:
1 #include&cstdio&
2 int n,a,fz[50000],ans[50000]={1,1};
3 int main(){
scanf("%d",&n);
for(int i=1;i&=n;i++)
for(int j=1;j&=ans[0];j++){
ans[j]=ans[j]*i+fz[j];fz[j]=0;
if(ans[j]&9){
fz[j+1]+=ans[j]/10;
ans[j]%=10;
if(j==ans[0]) ++ans[0];
for(int i=ans[0];i&0;i--) printf("%d",ans[i]);
printf("\n");
阅读(...) 评论()"c语言1到n阶乘的和"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的c语言1到n阶乘的和的糗事,各种关于c语言1到n阶乘的和的爆笑经历、尴尬时刻和开心视频,想持续关注c语言1到n阶乘的和的糗事就收藏本页吧.
扫码下载糗事百科app2731:求10000以内n的阶乘
总时间限制:
求10000以内n的阶乘。
只有一行输入,整数n(0<=n<=10000)。
一行,即n!的值。
共有12人评分}

我要回帖

更多关于 递归求n的阶乘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信