CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

脑筋急转弯

楼主dbwang()2006-11-27 11:50:19 在 专题开发/技术/项目 / 数据结构与算法 提问

100的阶乘的结果有多少个0? 问题点数:20、回复次数:146Top

1 楼mLee79()回复于 2006-11-27 12:32:48 得分 0

100/5   +   100/25Top

2 楼javasky0(The future is ours)回复于 2006-11-27 12:36:18 得分 0

n/10+n/100+n/1000+...Top

3 楼javasky0(The future is ours)回复于 2006-11-27 12:37:42 得分 0

啊我被转进去了楼上的是正解Top

4 楼crazy_lazy_pig(疯狂懒猪)回复于 2006-11-27 13:14:12 得分 0

30个,   仔细数过了.  
   
  不信大家一起数:  
  93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000Top

5 楼mLee79()回复于 2006-11-27 13:36:23 得分 0

哦,   错了,   被   LZ   骗了   .....  
   
  Top

6 楼qiudw(一万年太久,只争朝夕!)回复于 2006-11-27 13:54:48 得分 0

为什么是100/5   +   100/25?Top

7 楼AFIC(A Fool In China)回复于 2006-11-27 14:04:15 得分 0

没有算法,只能一个一个数……  
  末尾0倒是可以算出来Top

8 楼northwolves(狼行天下)回复于 2006-11-27 14:04:44 得分 0

[n/5^1]+[n/5^2]+[n/5^3]+...Top

9 楼chllcy(搬张小板凳,听星星们的高见)回复于 2006-11-27 23:08:44 得分 0

楼上的解释一下啊!~~~Top

10 楼luolovegui(骆归)回复于 2006-11-28 11:18:13 得分 0

刚写了一个.   24个.  
   
  //   test11.cpp   :   Defines   the   entry   point   for   the   console   application.  
  //  
  //   Author:   luogui  
  //   QQ:33761697  
  #include   "stdafx.h"  
   
  int   main(int   argc,   char*   argv[])  
  {  
  const   int   nValue   =   100;  
  int   nSum   =   0;  
  for(int   i   =   1;   i<=nValue;   i++)  
  {  
  int   n   =   i;  
  while   (n   %   5   ==   0)  
  {  
  nSum++;  
  n   /=   5;  
  }  
  }  
  printf("Hello   World!\n%d\n",nSum);  
  return   0;  
  }  
  Top

11 楼hai1039(天下)回复于 2006-11-28 11:22:40 得分 0

21个,  
  1-100数里含2个0的数有1个,  
  含1个0的数有9个,  
  含5的有10个  
   
  1*2+9*1+10*1=21  
  Top

12 楼FFSB()...()回复于 2006-11-28 11:29:09 得分 0

100的阶乘的结果不为零Top

13 楼brucesea(可口可乐)回复于 2006-11-28 11:38:32 得分 0

解释一下,0的个数就是:MIN(能整除2的个数,能整除5的个数),因为2*5=10。  
  显然能整除5的个数少些,看能整除5的个数就行了。  
  以5为步长,个数为n/5  
  以25为步长,个数为n/25   (例如25,25能整除5两次,所以要多加一次)  
  。。。  
  以5^t为步长,个数为n/5^t    
  结果为:n/5+n/25+...+0  
  n=100时,为100/5+100/25Top

14 楼Armstrong311(尼摩船长)回复于 2006-11-28 11:49:11 得分 0

找到所有能被5除尽的数   结果救出来了     比如25这样特殊的数要注意   呵呵   代表2个0啦     25/5/5  
  Top

15 楼XXKKFF(齐次边界条件有界弦自由振动方程混合问题的分离变量法-_-!!!)回复于 2006-11-28 12:25:27 得分 0

哦~~~~~~`Top

16 楼feifniao()回复于 2006-11-28 12:46:10 得分 0

我觉得是23  
  笨法数的.  
  末尾为零的,加一起,一共11个零  
  末尾为5的一共10   个.  
  再加上25和75.包含两个5的,再加2个  
  ==23个.不知道少算了哪个Top

17 楼yqydaful(无边落木)回复于 2006-11-28 12:51:01 得分 0

没说末尾有多少0啊,支持crazy_lazy_pig(疯狂懒猪)Top

18 楼raozhiven(朗屹)回复于 2006-11-28 13:07:43 得分 0

即然是脑筋急转弯,那么  
   
  问:10里有多少个5?  
  答:10   /   5   =   2。  
   
  问:10的阶乘的结果有多少个0?  
  答:任何数除以0都无意思,无解。Top

19 楼tdktdktdk()回复于 2006-11-28 13:08:08 得分 0

末尾的0有23个。中间夹着几个0,一时找不着办法。莫非有好方法?Top

20 楼vingo888(江南锦)回复于 2006-11-28 13:11:27 得分 0

define   f(x)   {  
    if(x   <=   1)   return   1;  
    return   (f(x   -1   )   *   x);  
  }  
   
  f(100)  
  Top

21 楼gxqcn(★) HugeCalc ← http://hugecalc.ik8.com/ (☆)回复于 2006-11-28 13:35:15 得分 0

“100!”如果用十进制表达,将出现30个“0”;如果用二进制表达,将出现318个“0”;  
  但如果用“100!+1”(或更高)进制表达,则不含“0”!Top

22 楼chen77716(tony)回复于 2006-11-28 13:35:29 得分 0

100!=以下各行相乘  
    1   *     2   *     3*......   9*10  
  11   *   12   *   13*......19*20  
  21   *   22   *   23*......29*30  
    .  
    .  
    .  
  91   *   92   *   93*......99*100  
  显然,此时0的个数=11个,以上规律很明显,个位数都相同  
  考虑1   *     2   *     3*......   9,的个位数得知,个位数为8,并且在多出一个0(因为4,5相乘)  
  此时0的个数为:11+10=21个  
  则上述乘式个位数变为:(把尾数的0去掉)  
  8*   1   =   8  
  8*   2   =   6  
  .  
  .  
  .  
  8*   9   =   2  
  8*   1   =   8  
  此时尾数均为偶数,相乘均再不能产生0  
  因此0的个数为21Top

23 楼lin_style(﹏.贾诩(某人语:矮子也高潮))回复于 2006-11-28 13:39:07 得分 0

小学竞赛题  
   
  看5   和   2Top

24 楼Jupin(T357)回复于 2006-11-28 13:40:43 得分 0

华为的电话面试问过这个问题  
   
  >>>   r   =   1  
  >>>   for   i   in   range(1,101):  
  ...   r   *=   i  
  ...    
  >>>   print   r  
  933262154439441526816992388562667004907159  
  682643816214685929638952175999932299156089  
  414639761565182862536979208272237582511852  
  10916864000000000000000000000000  
  >>>Top

25 楼dlyme(大老爷们儿)回复于 2006-11-28 13:41:46 得分 0

如果只算末尾有多少个0,那是24个,[n/5^1]+[n/5^2]+[n/5^3]+......正解。  
   
  可是如果连中间出现的0也算上呢?一时想不到好的办法...Top

26 楼zhaoqisen(GRAPP)回复于 2006-11-28 13:42:58 得分 0

2个Top

27 楼chen77716(tony)回复于 2006-11-28 13:48:54 得分 0

Sorry,因为24,跟25相乘=600,会多产生一个0  
  总数是:21+1=22个Top

28 楼chen77716(tony)回复于 2006-11-28 13:49:51 得分 0

100!=以下各行相乘  
    1   *     2   *     3*......   9*10  
  11   *   12   *   13*......19*20  
  21   *   22   *   23*......29*30  
    .  
    .  
    .  
  91   *   92   *   93*......99*100  
  显然,此时0的个数=11个,以上规律很明显,个位数都相同  
  考虑1   *     2   *     3*......   9,的个位数得知,个位数为8,并且在多出一个0(因为4,5相乘)  
  此时0的个数为:11+10=21个  
  则上述乘式个位数变为:(把尾数的0去掉)  
  8*   1   =   8  
  8*   2   =   6  
  .  
  .  
  .  
  8*   9   =   2  
  8*   1   =   8  
  此时尾数均为偶数,相乘均再不能产生0  
  因此0的个数为21  
  因为24,跟25相乘=600,会多产生一个0  
  总数是:21+1=22个  
  Top

29 楼xuleicsu()回复于 2006-11-28 13:54:10 得分 0

还在讨论这个问题啊。  
   
  我的算法如下(顺便建议大家不要动不动就把代码贴上来)  
   
  首先   求出最大的m,m满足2的m次方整除100!  
  然后   求出最大的n,n满足5的n次方整除100!  
   
  min(m,n)即为最后零的个数  
   
   
  大家注意。素数中只有2×5才能产生0Top

30 楼dlyme(大老爷们儿)回复于 2006-11-28 13:55:29 得分 0

各位,楼上已经有人把阶乘计算结果贴出来了,自己数一下也知道对不对,怎么这么多人还说是21、22呢?Top

31 楼dlyme(大老爷们儿)回复于 2006-11-28 13:59:29 得分 0

gxqcn(★) HugeCalc   ←   http://maths.diy.myrice.com/ (☆)    
   
  “100!”如果用十进制表达,将出现30个“0”;如果用二进制表达,将出现318个“0”;  
  但如果用“100!+1”(或更高)进制表达,则不含“0”!  
  =============================================================================  
   
  对得一塌糊涂!能告诉我是怎么算的吗???Top

32 楼zhuozhuo_jiao(卓卓)回复于 2006-11-28 14:06:37 得分 0

不算中间出现的只看末尾就24个了  
  10-100这样的数11个  
  2*5这样的10个  
  但25,50,75和4,8,12这样数乘会多一个0  
  所以末尾应该24个  
  中间出现的0就不好算了Top

33 楼buyaowen(失业中,请勿打扰)回复于 2006-11-28 14:09:58 得分 0

1-100末尾的0一共11个  
  5和5的倍数有,不算末尾是0的,有10个  
  特殊的有25,50,75,再加3个  
  一共24Top

34 楼huguang(胡广)回复于 2006-11-28 14:10:03 得分 0

包括几个5这种做法显然有问题!Top

35 楼gxqcn(★) HugeCalc ← http://hugecalc.ik8.com/ (☆)回复于 2006-11-28 14:11:35 得分 0

to   dlyme(大老爷们儿):  
          我用的是   HugeCalc,计算出结果再转换成二进制;将结果拷贝到   UEStudio,选“搜索”统计“0”即可。Top

36 楼ruantc(碧血剑传人)回复于 2006-11-28 14:16:03 得分 0

综上我有核实了下100!末尾是有24个0,全部是有30个0   。  
  但是主要,这个题目是脑筋急转弯题而不是数学题。好比1+1=?这类那样。  
  同意:raozhiven(朗屹)   的观点    
  -------------  
  问:10里有多少个5?  
  答:10   /   5   =   2。即10里有2个5。  
   
  问:10的阶乘的结果有多少个0?  
  答:任何数除以0都无意思,无解。  
  Top

37 楼xinhangwzq()回复于 2006-11-28 14:29:11 得分 0

24个0  
  4*5*9*10*14*15*19*20*24*25*29*30*....*48*50*...*72*75*...99*100  
  只要将25,50,75不算错就行了  
   
  或者       将所有的5的倍数全提出来   全部拆分。  
  5   10   15   20   30   35   40   45   55   60   65   70   80   85   90   95     共可以拆成16个5  
  25   50   75   100   可拆成8个5  
  所以和到24个5.  
  很多人出错在50×49       如果换一下顺序     48×50就有两个0了Top

38 楼lexchou(龍子龍孫)(本人已死)(有事烧纸)回复于 2006-11-28 14:32:12 得分 0

高一的时候我的算法老师也问我我同样的问题,我算的是   21   #-   -Top

39 楼chllcy(搬张小板凳,听星星们的高见)回复于 2006-11-28 14:34:40 得分 0

那些不懂的千万不要误倒我们这些新人啊!~~Top

40 楼qizi82()回复于 2006-11-28 14:46:32 得分 0

末尾的0好确定   中间的0怎么算啊?  
  15×14×13×12×11   的结果有几个0?  
  中间的出现的0如何确定?Top

41 楼softfire007(为天下美女幸福而生!)回复于 2006-11-28 14:59:44 得分 0

程序Top

42 楼yunxiang(无名)回复于 2006-11-28 15:12:37 得分 0

想要出现0   就必须要有5  
  所以把  
  5   10   15   20   25   30   35   40   45   50   55   60   65   70   75   80   85   90   95   100  
  这些数字抽取出来.其他不会出现0  
  这些数字理由有多少个5就有多少个0  
  5   10   15   20   25   30   35   40   45   50   55   60   65   70   75   80   85   90   95   100  
  1+1+1+1+2+1+1+1+1+   2     +1+1+1+1+1+   1+1   +1+1+2=   22  
  Top

43 楼yunxiang(无名)回复于 2006-11-28 15:15:38 得分 0

不好意思.数错了.  
  25   50   75   100   都有两个5  
   
  应该是20+4=24Top

44 楼LIDEHUA1975(李逍遥)回复于 2006-11-28 15:19:54 得分 0

一群笨蛋!  
  答案是24。  
  10=2X5,因此每个5遇到2都会产生一个0,100里面能被5整除的有20个,例如5、10、15、20、25。。。。,这20个数里面都至少有1个5,因此能产生20个0。  
  但还有特殊的数字,例如25,50,75,100。他们都是25的倍数,含有2个5,因此我们还要在20的基础上加上这种数字的个数,100/25=4。  
  所以,最终答案就是24。  
  通常解的形式就如上面朋友所说,[n/5]+[n/5*5]+[n/5*5*5]+.....Top

45 楼mango279(木目)回复于 2006-11-28 15:34:27 得分 0

既然是脑筋急转弯,那么  
  100!的结果有100!/2个2,有100!/5个5,   有100!/3个3  
   
  当然有100!/0个0,因此100!的结果有无穷多个0Top

46 楼yunxiang(无名)回复于 2006-11-28 15:42:56 得分 0

末尾有24个0  
  中间的有9个0  
   
  因为   有51   52   53   54   55   56   57   58   59  
  这些数字在和2相乘后就会使中间有0  
  s所以一共 33个0Top

47 楼junqiang(蓝色海洋)回复于 2006-11-28 15:43:35 得分 0

说明了是脑筋急转弯,当然不能用常规的方法!  
  我的答案是2个0。“100的阶乘”这个文本看一眼就知道是两个0Top

48 楼junqiang(蓝色海洋)回复于 2006-11-28 15:44:29 得分 0

“太平洋”中间是什么?当然是“平”Top

49 楼gch_h(小小乌龟)回复于 2006-11-28 15:49:24 得分 0

100有2个0,每个逢整十有一个0(包括10、20、30、40、50、60、70、80、90),共9个0,个位数一对2和5(偶数和5都可以,但是5只有10个)会产生一个0(每个整十刚好包含一对个位的2和5,如2和5、12和15、22和25……),共10个0,在100以内的数字去掉上述列举的数字之后在也找不到相乘结果为整十的数字了,所以100的阶乘的结果总共有21个0。如果那位仁兄还可以找到其他的0请告诉我。Top

50 楼gch_h(小小乌龟)回复于 2006-11-28 15:53:08 得分 0

应该说结果十以21个零结尾,至于中间有几个0就只有去数数看了Top

51 楼gch_h(小小乌龟)回复于 2006-11-28 16:00:29 得分 0

仔细想想还是24个,其中25、50、75都可以和其他偶数产生2个0Top

52 楼blackant2(乔峰)回复于 2006-11-28 16:01:44 得分 0

如果用ruby来算就简单了,傻瓜都会  
  result=1  
  2.upto(100){|i|   result*=i}  
  puts   result  
  puts   result.to_s.gsub(/[1-9]/,'').length  
  ==运行结果  
  93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000  
  30Top

53 楼hujun614(向2个或2个以上的板块都至少是二星用户的朋友学习)回复于 2006-11-28 16:01:52 得分 0

100有2个0,    
  逢十有9个数共9个0,其中50应多加一个0,    
  逢25,75也有两个零,  
  另外8个个位为5能生成8个0  
   
  所以共有24零    
   
  其实这只是尾部有多少个零,要算是前面有多少个,受后面进位影响太多,就不好计算了Top

54 楼parkour()回复于 2006-11-28 16:08:28 得分 0

楼上已有两位兄台,以算出100!的积后再数出来的0是有30个(本人也数了),请不要再以那些错误的算法来算22个或,24个呀,当你算出是30个0时再说你你算法和想法,否则也只是误导我们.  
  不要老是想到5呀25呀*某个数会产生0,却没有到也会减少0.  
  还有问题是最后*积的0而不是分段算出来的0的和,因为每一个分段还会作一次*运算,所以除了尾数的0不会发生个数变化,中的所有0都有可能会发生变化.Top

55 楼hdhmail2000(禅剑飞雪)回复于 2006-11-28 16:12:13 得分 0

9332621544394415268169923885626670049071596826438162146859296389521759999  
  3229915608941463976156518286253697920827223758251185210916864000000000000000000000000  
  数下就知道了Top

56 楼CARLTOON(乖乖老虎不咬人)回复于 2006-11-28 16:15:36 得分 0

其实很简单,10!=3628800,已经有2个末尾0了,到50!就应该是11个(50因子可以增加一个),到100!应该再增加11个(100增加2个0),因此,总数是22Top

57 楼CARLTOON(乖乖老虎不咬人)回复于 2006-11-28 16:17:04 得分 0

错了,25\75又可以增加2个,总数是24个Top

58 楼hdhmail2000(禅剑飞雪)回复于 2006-11-28 16:18:24 得分 0

脑精急转弯自然是算尾数吧  
  搂主这题出的太有争议了Top

59 楼mango279(木目)回复于 2006-11-28 16:30:11 得分 0

回复人:CARLTOON(乖乖老虎不咬人)   (   一级(初级))   信誉:100   2006-11-28   16:15:36   得分:0  
  ?    
  其实很简单,10!=3628800,已经有2个末尾0了,到50!就应该是11个(50因子可以增加一个),到100!应该再增加11个(100增加2个0),因此,总数是22  
  ==============================================  
  这位老兄,上面很多回复都可以作为参考的,麻烦你多看看Top

60 楼yanghuajia(我要抢分)回复于 2006-11-28 16:30:50 得分 0

当初回答这个问题是小学的时候,  
  该提应该给小学生讨论的。Top

61 楼MouseChen()回复于 2006-11-28 16:45:26 得分 0

这个有意思吗?Top

62 楼stillhurt(redkiller)回复于 2006-11-28 16:52:31 得分 0

9332621544394415268169923885626670049071596826438162146859296389521759999  
  3229915608941463976156518286253697920827223758251185210916864000000000000000000000000  
  这个方法实在太……  
   
  从5到100,数X对5取模,只要等于0的就让count0加1,然后除以5后继续取模加一,直到取模不等于0。然后取X+5继续对5取模……  
   
  写个小程序就出来了~Top

63 楼piaopiao11()回复于 2006-11-28 17:02:32 得分 0

30Top

64 楼yyxxh(yyxxh)回复于 2006-11-28 17:36:30 得分 0

很多人没学初等数论!Top

65 楼jianshi051(看到我就给我一点分吧>_<~)回复于 2006-11-28 17:38:48 得分 0

24是正解!~       我有计算过~Top

66 楼ade3000(不可能被淹死的鱼)回复于 2006-11-28 18:12:01 得分 0

"100!"后一个0也没有,它的后面是"!"Top

67 楼tatbaby(岛主)回复于 2006-11-28 19:10:21 得分 0

很多人都在讨论是21还是22,汗  
  前面人家都把100!结果给出来,还把推倒过程[n/5^1]+[n/5^2]+[n/5^3]+...给出来。  
  大家都不看回帖在瞎yy。。。Top

68 楼jianshi051(看到我就给我一点分吧>_<~)回复于 2006-11-28 19:17:50 得分 0

无论如何学习了,长见识了!~       谢谢~Top

69 楼oop_cpp()回复于 2006-11-28 19:22:21 得分 0

有人有算100!的算法吗??最终能够将100!的结果在屏幕上显示出来……Top

70 楼spirit_sheng(老盛)回复于 2006-11-28 19:37:22 得分 0

只有两个0,   注意,   这是   脑筋急转弯Top

71 楼spirit_sheng(老盛)回复于 2006-11-28 19:39:31 得分 0

100的阶乘的结果有多少个0?  
  应当这么看   "100的阶乘的结果"有多少个0?  
  你们说"100的阶乘的结果"这个字符串里有多少个0啊Top

72 楼GavinLv(Gavin.Lv.)回复于 2006-11-28 19:47:34 得分 0

我觉得还是让电脑去算省心   :)Top

73 楼adm_qxx((极品菠萝))回复于 2006-11-28 20:00:47 得分 0

算法描述  
  分解质因数,即:  
          1*2*3*...*1000   =   (2*5)*(2*5)*...*(2*5)  
                          *(没有匹配的2或5)   //其实地球人都知道2肯定比5多  
                                                              //这样其实只需要确定因子5的个数即可  
                          *(除2和5以外的其他质因数);  
  其因子中有多少个(2*5)即末尾有多少个0  
  因此问题变成求每个数中2和5因子的个数,再求和  
  最后min(因子2个数的总和,因子5个数的总和)即是所求。  
   
  参考:http://blog.sina.com.cn/u/3f943404010001blTop

74 楼PeopleRain()回复于 2006-11-28 20:45:49 得分 0

确实有傻的,为什么回帖的人都不看其他人的回帖呢?Top

75 楼z86x08y17()回复于 2006-11-28 20:54:00 得分 0

反正最少有一个是0,我是我了来完成作业的。Top

76 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2006-11-28 20:56:09 得分 0

懒得想~~Top

77 楼jia6867489()回复于 2006-11-28 21:09:41 得分 0

我也是来做作业的,晕Top

78 楼gswjsl()回复于 2006-11-28 21:10:55 得分 0

我也是来做作业的,哈哈,一样   。Top

79 楼yjvria()回复于 2006-11-28 21:11:13 得分 0

这个问题是不是有点。。。。。。?Top

80 楼jwy3110()回复于 2006-11-28 21:21:25 得分 0

什么垃圾机子,难用死!Top

81 楼jwy3110()回复于 2006-11-28 21:22:12 得分 0

低你     !Top

82 楼jxfengzi(子丰)回复于 2006-11-28 21:27:45 得分 0

6年前就有人在CSDN上问过这个问题,……Top

83 楼wzz7942720()回复于 2006-11-28 21:34:32 得分 0

6年前就有人在CSDN上问过这个问题,……  
   
  来完成作业的     顺便顶一下Top

84 楼cyyno1(GunRose)回复于 2006-11-28 22:20:15 得分 0

有0无零  
  无0有零Top

85 楼Eric1012()回复于 2006-11-28 22:55:45 得分 0

如果算得这么麻烦还能算是脑筋急转弯吗?大家想一想就知道了Top

86 楼Bible_Chou(日子在发霉)回复于 2006-11-29 09:04:20 得分 0

机器算的自己数数吧  
  93,326,215,443,944,200,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00Top

87 楼zzwu(未名)回复于 2006-11-29 09:22:49 得分 0

老问题了,以前早已讨论过。Top

88 楼genius_hb(本人很差)回复于 2006-11-29 09:28:23 得分 0

30   个,写个程序算下就知道了Top

89 楼buyaowen(失业中,请勿打扰)回复于 2006-11-29 09:30:52 得分 0

日了  
  24个是末尾的  
  全部的话不知道Top

90 楼linxi27(林夕)回复于 2006-11-29 10:00:13 得分 0

楼主,揭帖给分算了!  
  这种题目,每个案都对,角度不同,结果不同!Top

91 楼zzwu(未名)回复于 2006-11-29 10:12:35 得分 0

http://topic.csdn.net/T/20031006/10/2327400.htmlTop

92 楼zzwu(未名)回复于 2006-11-29 10:16:41 得分 0

 
  一般地,求N阶乘的尾部0的个数的公式为:  
   
      lim([N/5]+[N/5^2]+[N/5^3]+...+[N/5^k]),     k->+∞Top

93 楼zzwu(未名)回复于 2006-11-29 10:18:01 得分 0

 
  "这种题目,每个案都对,角度不同,结果不同!"  
   
      ---   掏浆糊.  
   
  Top

94 楼maxinliangGenius(Geniues)回复于 2006-11-29 10:27:40 得分 0

MD,结果出来了,猪不会数数啊?还非要说这说那,急转弯不过是想找一个简单的算法呢!Top

95 楼hqulyc((vc++++++++...死循环了))回复于 2006-11-29 10:27:55 得分 0

中间0的个数不好求!一个中间为0的再乘一次可能就不为0了Top

96 楼ysthxj(无知者)回复于 2006-11-29 10:31:48 得分 0

同意、楼上!Top

97 楼chenlixin007(Aeolus)回复于 2006-11-29 11:44:06 得分 0

看了上面的帖子,偶生感慨:  
   
  菜鸟到处有,此贴特别多!Top

98 楼glietboys(大大(beer))回复于 2006-11-29 12:18:48 得分 0

顶下楼上的.Top

99 楼hai1039(天下)回复于 2006-11-29 12:47:30 得分 0

中间哪会有零??Top

100 楼mmmcd(超超)回复于 2006-11-29 14:21:09 得分 0

支持一下  
  7!   =   5040,里面有2个0  
  末尾0很easy,  
  数中间的0不知道有没有好办法Top

101 楼hanyulcf()回复于 2006-11-29 14:48:50 得分 0

大家看看,30的阶乘是多少!!!  
  居然还有人直接写程序算的结果去数零!  
  正是傻的可爱!!!  
  我想这种基础性的东西,最基本的一些数学素质还是应该重视的!  
   
  写软件决不是只是简单的堆砌代码!!!Top

102 楼panheshun()回复于 2006-11-29 15:39:18 得分 0

hanyulcf   说得容易。。   去你妈的Top

103 楼n6002(犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇犇)回复于 2006-11-29 16:04:38 得分 0

同意panheshun的   如果   hanyulcf   不能用算法而不是数数回答出   1000!结果有几个0的话。  
   
   
  正确答案是---2x2x2x59Top

104 楼brothercat(猫猫 ^_^)回复于 2006-11-29 16:04:56 得分 0

如果是脑筋急转弯,这题到底算不算呢?汗~~~Top

105 楼cxz7531(大花猫)回复于 2006-11-29 16:15:56 得分 0

简单的很,不要说100,就是十万的阶乘也很容易求后面0的个数,如下程序:  
   
   
  public   class   JCCal   {  
   
  public   static   void   main(String[]   args)   {  
  System.out.println(get(100));  
  System.out.println(get(2000));  
  System.out.println(get(1800));  
  System.out.println(get(100000));  
  }  
   
  public   static   int   get(int   m)   {  
  int   count   =   0;  
  while   (m   >=   5)   {  
  count   +=   m   /   5;  
  m   =   m   /   5;  
  }  
  return   count;  
  }  
  }  
  Top

106 楼muyanpeng_mail(穆彦鹏)回复于 2006-11-29 16:28:07 得分 0

2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个   2个Top

107 楼cxz7531(大花猫)回复于 2006-11-29 16:32:42 得分 0

道理很简单。  
  给定一个较大的正整数m  
  它的阶乘=1*2*3*...*m  
   
  零是2和5相乘得到,2的个数、5的个数的最小值就是结果中0的个数,偶数中都含有2,所以2的个数远大于5。只需要求出5的个数就行了。  
   
  第一步,先看这m个数中哪些含有5,设U1=m/5(取整)则共有U1个,将这U1个数中的5提出,得U1个5     ,这U1个数变成1,2,3,...,U1  
  第二步     设U2=U1/5(取整),则1,2,3,U1中有U2个数含5,提取出,得U2个5,这U2个数变成1,2,3,...,U2  
   
  依次下去,直到Un小于5为止  
   
  则零的个数=U1+U2+..+Un  
   
  -------------  
  所以得到  
   
  public   static   int   get(int   m)   {//求出m阶乘后面的0的个数  
  int   count   =   0;  
  while   (m   >=   5)   {  
  count   +=   m   /   5;  
  m   =   m   /   5;  
  }  
  return   count;  
  }  
  Top

108 楼rym1020(天上人间免费在线动漫影院www.52tian.com欢迎访问)回复于 2006-11-29 17:56:05 得分 0

看了这么多回贴,没有一个人说出中间的0到底怎么算的。除了直接数数的外。  
   
  PS:楼主的标题虽然是脑筋急转弯,但我们现在已不是在讨论楼主的急转弯,而是讨论这个命题:  
   
  100!的结果中有多少个0,包括尾数的和中间的0,用什么方法可以算出来。  
   
  PS2:希望那些自以为是的“高手”们,不要再来炫耀自己算到了24个0了。  
   
  PS3:楼下的回贴前麻烦先把我楼上的贴都全看完。Top

109 楼yuxingleo()回复于 2006-11-29 18:02:01 得分 0

cxz7531(大花猫)    
  强啊~~!!Top

110 楼valian_logon(valian)回复于 2006-11-29 20:10:15 得分 0

看完了,新手出道,未知IT路如此艱難。。。。頭都大了  
  高手呀,看來我還是回家種田算了。  
  Top

111 楼piaopiao11()回复于 2006-11-29 20:30:24 得分 0

在好的算法如果是错的也是没用的  
  用笨法子算出来虽然不好,但终究是对的。。。Top

112 楼smileci()回复于 2006-11-29 21:25:31 得分 0

都是高手....各种解数...各种结果...  
  俺是服了...还是回家放牛简单些...Top

113 楼bbsdkjdx()回复于 2006-11-29 21:30:07 得分 0

要看末0的个数,就是看2和5中较少的那个的个数,显然5比2要少。  
  所以100!中末0的个数就是因子5的个数。  
  1到100所有的数中,含5的那部分为:(1*5)*(2*5)*.....*(20*5)  
  =5^20*(20!)  
  20!中只有5,10,15,20这四个数有4个5,所以共有24个5,即有24个末0。  
   
  一道很直白的算术题,为什么偏要让CPU转那么多圈?该人脑干的事不要让电脑干,不然程序员真的成廉价的机器了。Top

114 楼cqcmdwym(酷琪)回复于 2006-11-29 22:33:30 得分 0

24-------结尾的话就是正解  
  ?-------所有的话不知道了Top

115 楼sunbird69(太阳鸟)回复于 2006-11-29 22:37:12 得分 0

中间的0是个问题Top

116 楼nofat(减肥必胜)回复于 2006-11-29 22:51:10 得分 0

>>>   str(reduce(lambda   x,y:x*y,   range(1,101))).count('0')  
  30  
  >>>Top

117 楼nofat(减肥必胜)回复于 2006-11-29 22:57:05 得分 0

>>>   def   solve():  
  import   time  
  s   =   time.time()  
  print   str(reduce(lambda   x,y:x*y,   range(1,101))).count('0')  
  print   'run   time:   %s'   %   (time.time()   -   s)  
   
   
  >>>   solve()  
  30  
  run   time:   0.0629999637604  
  >>>Top

118 楼onlinedown(天涯)回复于 2006-11-29 23:14:46 得分 0

一共   30  
  末尾   24Top

119 楼zhishupp(质数)回复于 2006-11-30 08:56:47 得分 0

100!=  
  93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000  
   
  共计:158   位      
  末尾0的个数为:24    
  Top

120 楼goodbee(采蜂)回复于 2006-11-30 10:57:55 得分 0

2个~  
  Top

121 楼bamfk10231023(银狐)回复于 2006-11-30 12:52:29 得分 0

这个答案老早就有了:  
  1000   /   5   =   200  
  1000   /   25   =   40  
  1000   /   125=     8  
  1000   /   625   =   1  
  答案:249   ,为什么这么算以前想不通,现在明白了!  
  用电脑就可以了,不需要人脑算,号称是公务员的题目!Top

122 楼oyd() oyd() oyd() oyd() oyd()回复于 2006-11-30 12:55:42 得分 0

这道题数学上的正规的解法应该是这样的  
  实质下列=式  
  100!   =   A*10^n   +   (B)*10^(n-1)   +   ...   +   ZZZZ*10^0  
  求出右边各项系数中为0的有哪些Top

123 楼start4u()回复于 2006-11-30 13:21:28 得分 0

谁告诉我中间的六个0是怎么算的       一个个数的不用说了Top

124 楼mood8125(是男儿,总要走向远方,走向远方,让生命更辉煌...)回复于 2006-11-30 15:13:12 得分 0

markTop

125 楼songpengxing()回复于 2006-11-30 16:06:43 得分 0

牛比Top

126 楼lose_forest(无名小卒)回复于 2006-11-30 16:53:25 得分 0

既然是脑筋急转弯,哈哈     那我就来个"拿来主义"  
  100的阶乘里面有几个零?  
  1.100的阶乘怎么说都是很大的,怎么会有0?答案:100的阶乘里面没有零.  
  2.100的阶乘很大很大,即使里面有几个1,也可以看作是无穷多个1,何况零呢?答案:100的阶乘里面有零无穷个.  
  3.倘若用10进制来说明,100阶成数字里有几个0,那怎么说??看LS的答案呀!答案:100的阶乘里面有30个零.似乎最后一个最好了~笨蛋!看看题目再回答~操~我被愚弄了~大家一起上LZ!Top

127 楼jiang5448(珞珈菜鸟)回复于 2006-11-30 17:03:22 得分 0

POJ   上的做了么?/?    
  100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000Top

128 楼yao_great(君德)回复于 2006-11-30 18:11:33 得分 0

牛人  
  我晕了Top

129 楼gwhzh(入门)回复于 2006-11-30 18:36:17 得分 0

有算法的.离散数学里有.Top

130 楼laiwusheng(风清扬)回复于 2006-11-30 21:36:15 得分 0

看看那个任意精度算法Top

131 楼getter(getter)回复于 2006-11-30 23:25:32 得分 0

24個呀...  
  Top

132 楼mmmcd(超超)回复于 2006-12-01 09:19:34 得分 0

在看帖不回帖被鄙视的年代里,流行着回帖不看帖Top

133 楼s3x4(懒虫)回复于 2006-12-01 09:55:41 得分 0

 
  “太平洋”中间是什么?当然是“平”  
   
  =========  
   
  正解Top

134 楼jw212()回复于 2006-12-01 09:56:27 得分 0

2  
  24  
  30Top

135 楼atco(成)回复于 2006-12-01 10:17:01 得分 0

不明Top

136 楼WuBill()回复于 2006-12-01 12:38:48 得分 0

mmmcd(超超)    
  在看帖不回帖被鄙视的年代里,流行着回帖不看帖  
   
  精辟啊....Top

137 楼Iiukang520236(【全自动智能灌水机】)回复于 2006-12-01 12:49:09 得分 0

100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000Top

138 楼Iiukang520236(【全自动智能灌水机】)回复于 2006-12-01 12:52:40 得分 0

100!=[93326215443944152681699238856266700490  
  7159682643816214685929638952175999932299156  
  08941463976156518286253697920827223758251185210916864  
  000000000000000000000000]  
   
  1000!=   [  
  40238726007709377354370243392300398571937486421071  
  46325437999104299385123986290205920442084869694048  
  00479988610197196058631666872994808558901323829669  
  94459099742450408707375991882362772718873251977950  
  59509952761208749754624970436014182780946464962910  
  56393887437886487337119181045825783647849977012476  
  63288983595573543251318532395846307555740911426241  
  74743493475534286465766116677973966688202912073791  
  43853719588249808126867838374559731746136085379534  
  52422158659320192809087829730843139284440328123155  
  86110369768013573042161687476096758713483120254785  
  89320767169132448426236131412508780208000261683151  
  02734182797770478463586817016436502415369139828126  
  48102130927612448963599287051149649754199093422215  
  66832572080821333186116811553615836546984046708975  
  60290095053761647584772842188967964624494516076535  
  34081989013854424879849599533191017233555566021394  
  50399736280750137837615307127761926849034352625200  
  01588853514733161170210396817592151090778801939317  
  81141945452572238655414610628921879602238389714760  
  88506276862967146674697562911234082439208160153780  
  88989396451826324367161676217916890977991190375403  
  12746222899880051954444142820121873617459926429565  
  81746628302955570299024324153181617210465832036786  
  90611726015878352075151628422554026517048330422614  
  39742869330616908979684825901254583271682264580665  
  26769958652682272807075781391858178889652208164348  
  34482599326604336766017699961283186078838615027946  
  59551311565520360939881806121385586003014356945272  
  24206344631797460594682573103790084024432438465657  
  24501440282188525247093519062092902313649327349756  
  55139587205596542287497740114133469627154228458623  
  77387538230483865688976461927383814900140767310446  
  64025989949022222176590433990188601856652648506179  
  97023561938970178600408118897299183110211712298459  
  01641921068884387121855646124960798722908519296819  
  37238864261483965738229112312502418664935314397013  
  74285319266498753372189406942814341185201580141233  
  44828015051399694290153483077644569099073152433278  
  28826986460278986432113908350621709500259738986355  
  42771967428222487575867657523442202075736305694988  
  25087968928162753848863396909959826280956121450994  
  87170124451646126037902930912088908694202851064018  
  21543994571568059418727489980942547421735824010636  
  77404595741785160829230135358081840096996372524230  
  56085590370062427124341690900415369010593398383577  
  79394109700277534720000000000000000000000000000000  
  00000000000000000000000000000000000000000000000000  
  00000000000000000000000000000000000000000000000000  
  00000000000000000000000000000000000000000000000000  
  00000000000000000000000000000000000000000000000000  
  000000000000000000  
  ]  
   
  Top

139 楼Iiukang520236(【全自动智能灌水机】)回复于 2006-12-01 12:53:41 得分 0

我专门写了个大数运算的程序,计算出来的结果,结果绝对准确,你们自己去数吧Top

140 楼savagegan(shusheng gan)回复于 2006-12-01 13:01:44 得分 0

bs回帖不看贴  
  老早就有7!   有2个0的反例了,还到处乱贴甚么24个0  
  你们的所谓算法小学生都会  
  大家的定势思维太严重了!!!!!!!!Top

141 楼Iiukang520236(【全自动智能灌水机】)回复于 2006-12-01 13:03:07 得分 0

10000的阶乘有35660个数字,我靠,贴不下Top

142 楼Iiukang520236(【全自动智能灌水机】)回复于 2006-12-01 13:06:26 得分 0

回复人:savagegan(savage   甘)   (   一级(初级))   信誉:100  
   
  强烈BS   savagegan  
   
  7!   =   5040Top

143 楼savagegan(shusheng gan)回复于 2006-12-01 13:31:33 得分 0

to   Iiukang520236(【全自动智能灌水机】)   :  
   
  7!   =   5040  
  你自己也写了结果,不是两个0吗?  
  你用甚么5的倍数的个数来算出2个0看看??Top

144 楼hdhmail2000(禅剑飞雪)回复于 2006-12-01 13:32:35 得分 0

楼上的注意,人家是求多少个0,而且是脑筋急转弯  
  至于大数的算法不是这里的主题  
  大数的算法俺也写过java,.net都写过了Top

145 楼Iiukang520236(【全自动智能灌水机】)回复于 2006-12-01 15:00:43 得分 0

日!!!  
   
  人家一般都是求最后有多少个零,傻B才会问有多少个零,由此可知,楼主傻BTop

146 楼WinWing(土豆╃为爱狂奔九条街╃ What's mine is mine)回复于 2006-12-02 02:13:16 得分 0

楼上虽然粗鲁,但胜在诚实Top

相关问题

关键词

得分解答快速导航

  • 帖主:dbwang

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo