zoukankan      html  css  js  c++  java
  • 一道开阔视野的数学题(很有意思分享一下)在乘积1×2×3×4×............×698×699×700中,末尾只有( )个0

    这是公务员考试里的一道题目,我觉得很有意思,所以分享一下

    1. 在乘积1×2×3×4×............×698×699×700中,末尾只有( )个0

          首先我们现需要了解0是怎么形成的,情况只有1种,那就是5跟一个偶数相乘就可以构成一个0
    例如 
    25=5×5 
    所以具有2个5, 
    50=2×5×5      也是2个5 
    125=5×5×5     有3个5  
    625=5×5×5×5   具有4个5 

    好,弄清了本质,咱们就可以解决它了,以下是他的解题方法
    方法一: 
    我们只要看 700个数字里面有多少个5的倍数 

    700/5=140 (先看上面的红色分析,这里140是把5的倍数都给拿了出来,但是2个5相乘的却也只被算了一次《其实3个5,4个5(当然前提是4个5相乘,5个5相乘,n个5相乘的数字存在,5的n次方要小于700》相乘的也只被算了一次),接下来下面还要算2个5相乘的有几个
    还不行 我们还要看有多少25的倍数 
    700/25=28 (因为25的倍数中5的个数只算了一次,所以这里还要140加上28(接下来重复上面的分析,125=5*5*5的倍数在140+28后也只算了两次,所以下面还要再算一次))
    还要看有多少125的倍数 
    700/125=5 (依次类推,1个5的140加上2个5的28。。。)
    625的倍数: 700/625=1 
    其实就是看 700里有多少的5^1,5^2,5^3,5^4……5^n 
    5^n必须小于700 
    所以答案就是 140+28+5+1=174 

    方法二: 
    原理是一样的,但是我们可以通过连除的方式不听的提取5的倍数 直到商小于5 

    700/5=140 
    140/5=28 
    28/5=5 
    5/5=1 
    答案就是这些商的总和即174 
    140 是计算含1个5的 但是里面的25的倍数只被算了一次,所以我们还需要将140个5的倍数再次挑出含5的数字,以此类推,就可以将所有含5的个数数清! 
    以上是解决这类题的两种方法,第二种相对来说更容易操作!因为连除数字在变小,计算起来相对简单。建议用第二种。

  • 相关阅读:
    2018杭电多校第六场1009(DFS,思维)
    Atcoder Regular Contest 085F(动态规划,线段树)
    IOS各类优化方案集锦
    iOS网络加载图片缓存策略之ASIDownloadCache缓存优化
    oc
    OC 内存管理机制总结
    ARC小知识
    oc常见误区
    常用第三方(分享,支付,二维码,语音,推送)
    UIKit,Core Data , Core Graphics, Core Animation,和OpenGLES框架
  • 原文地址:https://www.cnblogs.com/kexb/p/4967436.html
Copyright © 2011-2022 走看看