| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2151 人关注过本帖
标题:帮我写下面的程序呀,谢啦
只看楼主 加入收藏
jamesbind
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-3-21
收藏
得分:0 
/*计算n!中零的个数*/

int  count_zero(int n)
{
    int i;
    int temp;
    int n5=0;   //计数5的个数
    for(i=1;i<=n;i++){
        temp=i;   
        while(0==temp%5){
            n5++;
            temp=temp/5;
        }
    }
    return n5;
}

//将1到n的所有数分解为素数的乘积,显然只有2×5才能得10,而2的个数又远大于5的个数,所以只需计算这些素数中有多少个5就可以了。
2008-04-03 15:26
jamesbind
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-3-21
收藏
得分:0 
while(0==temp%5){
            n5++;
            temp=temp/5;
这个循环就是考虑了这个问题的。
2008-04-03 15:29
liubin111456
Rank: 1
来 自:岳阳
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-4-3
收藏
得分:0 
有问题哦
2008-04-03 15:43
jamesbind
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-3-21
收藏
得分:0 
没有问题
2008-04-03 16:00
酷猫
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-9-8
收藏
得分:0 
关注!!

生活真TM好玩,因为生活老TM玩我!
2008-04-03 22:22
firel
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-10-4
收藏
得分:0 
没那么难把
用数组来存 n!不久行了吗???
2008-04-03 22:36
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
N! 是阶乘吗,我忘记了!

—>〉Sun〈<—
2008-04-04 00:34
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
这个问题不难,但是也不是求阶乘这么简单!
就算90个10相乘,也是个91位数,没有数据类型可以保存,更不要说阶乘了
其实一个数字,0的个数其实就是因子10的个数
举例:
10=1*10    一个10,一个0
100=1*10*10    两个10,两个0
而因子10只有两个来源2*5=10,1*10=10
所以只需从1到100遍历,查找因子2和5的个数,结果就是它们的最小值
要注意的是,要统计所有的2和5,例如,4=2*2,因子2要加两次

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-04 00:56
快速回复:帮我写下面的程序呀,谢啦
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019599 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved