| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1795 人关注过本帖, 1 人收藏
标题:练习求100!最后有几个零?
只看楼主 加入收藏
wyzn12
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-10-28
收藏(1)
 问题点数:0 回复次数:10 
练习求100!最后有几个零?
求100!最后有几个零?如果把100换成任意整数N呢?
搜索更多相关主题的帖子: 练习 
2007-01-26 16:49
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

我可以给你写一个,不过位数太大了,我就不知道了.呵呵~~~~~~~
#include <stdio.h>

void main()
{
int N;
double sum=1;
printf("Enter the number:");
scanf("%d",&N);

for (int i=1;i<=N;i++)
sum*=i;
printf("1!+2!+....+%d!=%lf\n",N,sum);
}
听别人说可以用到字符串.还有,我在前面就见到过这样的帖子,而且里面的斑竹有更厉害的.找找看吧.
呵呵~~~~~~
顶~~~~~~~~~~~


~~我的明天我知道~~
2007-01-26 17:05
csight
Rank: 1
等 级:新手上路
威 望:1
帖 子:293
专家分:0
注 册:2006-6-11
收藏
得分:0 
回二楼:
printf("1!+2!+....+%d!=%lf\n",N,sum);/*???*/
-->>printf("%d!=%lf\n",N,sum);


头可断,发型不可乱;血可流,皮鞋不可不擦油;
2007-01-26 17:13
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

呵呵 是呀,太激动了。 


~~我的明天我知道~~
2007-01-26 17:20
wyzn12
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-10-28
收藏
得分:0 
不合要求啊,问的是最后有几个零,还有肯定不能老老实实的算出100!啊,计算机数的范围有限

新王登基,血流成河!
2007-01-26 17:25
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
不用这么麻烦......
100!末尾有24个零

我曾经研究过世界奥林匹克的题,最终发现一个无与伦比的简单解法:
用原数除以5,如100/5=20;
如果得数大于5则将得数再除以5,即20/5=4;
依次类推,直到得数小于4时停止,将以上得数相加
得(20+4)=24,即为解

再举一个例子:
1000/5=200;
200/5=40;
40/5=8;
8/5=1...3;

则1000!末尾有(200+40+8+1)=249.

注意:如果除的过程中发现有余数,则去掉余数,用得数接着算即可,就如8/5=1...3,这里3是没有任何作用的

以上为原创作品,请不要抄袭,转载请告之本人,谢谢!

还有,如果真要求解乘的结果后再"数"零的个数,可以参见我发的
http://bbs.bc-cn.net/viewthread.php?tid=108422&extra=&page=100#
可以解决大数的解乘计算的问题

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-01-26 17:47
hiaod
Rank: 1
等 级:新手上路
威 望:1
帖 子:66
专家分:0
注 册:2007-1-25
收藏
得分:0 

版主的算法是正确的。按他的算法可以编一个程序:


/* 求指定整数的阶乘后面有多少个0  */

#include <stdio.h>

int main()
{
int number,zero = 0 ,temp;
printf("please input a integer:");
scanf("%d",&number);
temp = number;
while(temp > 4)
{
temp /= 5;
zero += temp;
}
printf("%d! has %d zero .\n",number,zero);
return 0;
}

2007-01-26 18:49
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

感谢楼上的程序


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-01-26 18:54
hiaod
Rank: 1
等 级:新手上路
威 望:1
帖 子:66
专家分:0
注 册:2007-1-25
收藏
得分:0 
呵呵,版主的算法好呀。开始偶也懞了。
2007-01-26 19:14
wyzn12
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-10-28
收藏
得分:0 
以下是引用卧龙孔明在2007-1-26 17:47:00的发言:
不用这么麻烦......
100!末尾有24个零

我曾经研究过世界奥林匹克的题,最终发现一个无与伦比的简单解法:
用原数除以5,如100/5=20;
如果得数大于5则将得数再除以5,即20/5=4;
依次类推,直到得数小于4时停止,将以上得数相加
得(20+4)=24,即为解

再举一个例子:
1000/5=200;
200/5=40;
40/5=8;
8/5=1...3;

则1000!末尾有(200+40+8+1)=249.


[此贴子已经被作者于2007-1-26 23:55:40编辑过]


新王登基,血流成河!
2007-01-26 23:46
快速回复:练习求100!最后有几个零?
数据加载中...
 
   



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

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