民科吧 关注:359,685贴子:4,861,382
  • 13回复贴,共1

看到有人问1000!的尾零个数,我尝试了一下用计算的方法得出

只看楼主收藏回复

看到有人问1000!的尾零个数,我尝试了一下用计算的方法得出结果。下面是我的思路,也许有错误,可以讨论


IP属地:安徽来自Android客户端1楼2017-11-05 06:08回复
    首先有个概念,每一个尾零,要么由现成的0组成,要么由2*5得到。而2是较多的,因此只需要考虑“现成的0”和“5”的个数,即可得到尾零数


    IP属地:安徽来自Android客户端2楼2017-11-05 06:09
    回复
      我们把1到1000里,个位数为0和5的数字列出来,其他数字可以无视了:
      ①5、10、15、……、1000,共200个
      而由于2的数量充足,我们可以把①中每一个数都乘以2,这样不影响尾零个数,即变成:
      ②10、20、30、……、2000
      接下来,我们把这列数的最后一个零拿出来,就有200个尾零了,而剩下的部分是:
      ③1、2、……、200
      我们只需算清楚③中的尾零数,再加上200,即可得到原式的尾零数


      IP属地:安徽来自Android客户端4楼2017-11-05 06:21
      回复
        对③进行同样的步骤,即取出5和0结尾的数字,得到:
        ④5、10、……、200
        乘以2,得到:
        ⑤10、20、……、400
        对⑤可以得到40个尾零,剩余部分为:
        ⑥1、2、……、40


        IP属地:安徽来自Android客户端5楼2017-11-05 06:23
        回复
          对⑥同理,取5与0结尾,得到:
          ⑦5、10、……40
          乘以2,得到:
          ⑧10、20、……、80
          取出8个0,剩余的是1到8,显然只有一个0


          IP属地:安徽来自Android客户端6楼2017-11-05 06:25
          回复
            综合几层楼的结果,答案是200+40+8+1=249


            IP属地:安徽来自Android客户端7楼2017-11-05 06:25
            回复
              值得说明的两点:
              一、这个办法确实是我独立思考得出的
              二、看到原帖中有人已经说出了这个式子(200+40+8+1),这表明他很可能也是用了同样的或者更高明的办法。


              IP属地:安徽来自Android客户端8楼2017-11-05 06:28
              收起回复
                尾数20的和50的相乘又多出一个0。
                200 x500 也多出一个0


                IP属地:河北来自Android客户端9楼2017-11-05 06:32
                收起回复
                  这个问题可以简化成1000!可以被5的最高多少次幂整除,也就是200+40+8+1


                  IP属地:加拿大来自Android客户端10楼2017-11-05 08:36
                  收起回复
                    这不是小学奥数吗


                    来自Android客户端11楼2017-11-05 13:40
                    收起回复