`
xizhenyin
  • 浏览: 53056 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

求100!中尾后包含多少个零。

阅读更多

         原题并未让我们算出100!的结果,只需要算出尾后0的个数就行了,这是走向正确之路的第一步。
其次,我们能知道尾后出现一个零,即10必定是这个数的因子,尾后有多少个零就意味着能整除10多少次。
10=2*5,而100=1*2*3*4*。。。*100,其中2必定比5多,问题就变成了100!能整除5多少次。
次数不需要求出100!是多少,只要把1-100能整除5的次数加起来即可。

 

public class TailsZero {
  public static void main(String[] args) {
    int sum = 0;
    for (int i = 5; i <= 10000; i+=5) {
      int count = getDivisorCount(i, 5);
      sum += count;
    }

    System.out.println("100阶乘尾后0的个数为:" + sum);
  }  

  /**
   * 遞歸方式版本
   * 取得除数在被除数中的可整除次数,如5在25中的可整除个数为2
   * @param Dividend 被除数
   * @param divisor 除数
   * @return
   */
  public static int getDivisorCount(int Dividend, int divisor) {
    if (Dividend == 0) {
      return 0;
    }

    int count = 0;

    if (Dividend % divisor == 0) {
      count = 1;
      count += getDivisorCount(Dividend / divisor, divisor);
    }

    return count;
  }
  
  /**
   * 非遞歸方式版本
   * 取得除数在被除数中的可整除次数,如5在25中的可整除个数为2
   * @param Dividend 被除数
   * @param divisor 除数
   * @return
   */
  public static int getDivisorCount2(int Dividend, int divisor) {
    int count = 0;
    int oldDivisor=divisor;

    while (Dividend % divisor == 0) {
      count ++;
      divisor*=oldDivisor;
    }

    return count;
  }

}

 

分享到:
评论
1 楼 chinsans 2010-07-17  
恩 恩 

相关推荐

    python中尾递归用法实例详解_.docx

    也就是说,当函数的返回值是直接递归调用的结果时(不包含任何额外的操作),则称该递归调用为尾递归。这种递归形式的一个重要特点是其可以在某些语言或编译器的支持下自动进行优化,减少内存占用。 ##### 2.2 尾...

    python中尾递归用法实例详解

    本文实例讲述了python中尾递归用法。分享给大家供大家参考。具体分析如下: 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的...

    数据结构知识点大全.pdf

    循环链表是指表中尾结点的指针域指向头结点,形成一个环。从表中任意一个点出发都可以找到表中的其他结点。循环链表的操作和线性链表的操作基本一致,但循环链表中没有NULL指针,故遍历操作时,终止条件不再是判断p...

    英语单词音节划分口诀.doc

    音节是构成单词发音的基本单位,它由一个或多个字母组成,每个音节都有可能包含元音和辅音。 在英语中,音节分为三种主要类型:开音节、闭音节和半开音节。开音节是指以元音结尾的音节,例如"be"。闭音节则是以辅音...

    过渡过程中尾水管进口压力分布模型试验 (2006年)

    - **目的**:通过对模型进行一系列的研究(包括100%流量、部分流量以及不同下游水位条件下的试验),探讨尾水管进口处的压力分布情况,为水电站的设计和研究提供参考。 #### 知识点二:试验方法与过程 - **试验...

    C#中尾递归的使用、优化及编译器优化

    一个函数直接或间接的调用自身,这个函数即可叫做递归函数。 递归主要功能是把问题转换成较小规模的子问题,以子问题的解去逐渐逼近最终结果。 递归最重要的是边界条件,这个边界是整个递归的终止条件。 代码如下: ...

    英语音节划分规则(详细版).doc

    接着,处理元音之间的辅音时,遵循“一靠后,二分手,多个中间偏左右”的原则,即一个辅音通常归于后面的音节,两个辅音则平均分配,多个辅音则根据发音位置决定归属。组合字母如"th", "sh", "ch"等被视为一个整体,...

    数据结构考试题

    若一棵二叉树中有100个度为2的结点,则它有()个叶子。** - **解析**:在二叉树中,度为2的结点数量加1等于叶子结点的数量。 - **答案**:101 **7. 假设为循环队列分配的向量空间为Q[20],若队列的长度和队头指针值...

    英语单词音节划分口诀.docx

    * 一靠后,二分手,多个中间偏左右,组合字母算一个,常见组合要遵守。 * 词尾看e加音节,发音不发分两种,双字相连不连手,听音验证最后头,解释意外不发愁。 5. 英语音节划分口诀的应用 英语音节划分口诀可以...

    阿波罗绢蝶PPT课件.pptx

    8. **竹节虫目**:包括杆状和叶状两种形态,前翅可能小于后翅或者无翅,杆状种类的足类似棍棒,叶状种类的足模仿叶片,这种拟态有助于它们伪装。 9. **螳螂目**:头呈三角形,前胸长,前足特化为捕捉足,前翅是复翅...

    地震勘探采集中尾锥因素对检波器耦合系统的影响 (2006年)

    设计了一系列包括实验室测试及室外测试的试验,测试尾锥在不同长度、质量、材料、土壤等情况下检波器的频率响应特性。测试结果验证了叠加效应模型,部分支持二自由度模型,试验结果没有验证耦合谐振模型。新模型和...

    《数据结构》简答题 试题含答案.docx

    - **2-3树**是一种自平衡的二叉查找树,每个节点最多有两个子节点,且可以包含两个或三个键值。 - 2-3树保证了所有叶节点的高度相同,从而确保了查找效率。 #### 2. 构建过程 - 按照给定的序列20,30,50,52,60,...

    自考数据结构汇总

    - **索引存储方法**:除了存储节点信息外,还额外建立索引表来标识节点的地址,索引表包含节点的关键字和地址信息。 - **散列存储方法**:根据节点的关键字直接计算出节点的存储地址,适用于快速查找场景。 #### ...

Global site tag (gtag.js) - Google Analytics