`
guiqing85
  • 浏览: 168660 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

求N!的结果末尾有多少个零

阅读更多
求N!的结果末尾有多少个零
private static int numOfZero(int n) {
   int count = 0;
   int data = 1;

   for (int i = 1; i <= n; i++) {
    data = data * i;
    while (data % 10 == 0) {
     count++;
     data = data / 10;
    }
    data = data % 10;// 只保留个位数字,因其它位数字对0的个数无影响
   }
   return count;
}

分享到:
评论
1 楼 chyanog 2010-08-27  
data = data % 10
纯属多余,这样就错了。事实上,这种算法比较低效,而且处理范围大了就会溢出
简单的方法:
f[n_] := Sum[Floor[n/5^i], {i, Floor@Log[5, n]}]

相关推荐

    求n!末尾0的个数

    求n!数的末尾0的个数.用c语言实现。 简单方便

    n的阶乘(n!)末尾有多少个0

    )末尾有多少个0? 代码实现非常简单!!!—- n!的末尾有count个0. int n; // n!的末尾有count个0. int count = 0; for (int i = 0; i &lt; n; i++) { n /= 5; count += n; } 由于在N特别大的时候强行算出N!...

    C++版本计算n阶乘末尾0的个数原理讲解及代码实现

    (N的阶乘)末尾有多少个0 nCount = Factorial(nTest); cout !末尾0的个数为: " ; // ... 其他测试案例 ... return 0; } ``` ##### 函数Factorial() 该函数`Factorial`接收一个整数`nNumber`作为参数,返回该整数...

    n的阶乘末尾有多少个0_n的阶乘末尾的0_

    在给定的文件列表中,“n的阶乘末尾有多少个0.cpp”可能是实现这个算法的C++源代码,而“n的阶乘末尾有多少个0.exe”是编译后的可执行文件,用于直接运行程序并得到结果。 通过这种方法,我们可以有效地处理大数...

    判断阶乘末尾有几个零

    判断阶乘末尾有几个零 阶乘 不计算阶乘 不计算阶乘

    C语言编程训练:循环结构-求阶乘末尾零个数

    的末尾零的个数。例如10!=3628800,则Z(N)=2。 编写计算机程序有效的确定Z的值。 【输入说明】 输入的第一行是一个单个的确定的正整数T,他指名接下来的数字的个数,然后是 T 行,每一行包括一个确定的正整数N,1...

    用C语言实现n!最后一位非零数字的算法与程序分析.pdf

    中末尾零的个数,并进而确定最后一个非零数字。 程序实现上,可以利用循环和除法操作,首先计算因子5的个数P,然后在阶乘乘法过程中,每次乘以一个数之前,先除以P个2,以确保在最终结果中末尾不会有零产生。 这一...

    求1000阶乘的结果末尾有多少个0

    在编程和算法问题中,有时会遇到计算阶乘并寻找结果末尾零的数量的问题。这个问题在本例中是计算1000的阶乘(1000!)末尾有多少个零。解决这类问题的关键在于理解零出现在末尾是因为数字可以被10整除,而10由2和5的...

    n的阶乘问题--阶乘位数--阶乘末尾0的个数

    本文将深入探讨“n的阶乘问题”,包括阶乘的定义、计算阶乘位数的方法以及如何确定阶乘末尾零的个数。 首先,阶乘是指一个正整数n与小于等于它的所有正整数的乘积。用数学符号表示为`n! = n × (n-1) × (n-2) × ....

    千万不要被阶乘吓倒

    末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。2、求N!的二进制表示中最低位1的位置。 有些人碰到这样的题目会想:是不是要完整计算出N!的值?如果溢出怎么办?事实上,如果我们从”哪些数...

    刷题遇到的一些题目(Java)——持续更新

    (即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 原题链接:https://www.nowcoder.com/questionTerminal/6ffdd7e4197c403e88c6a8aa3e7a332a 算法思想:最简单的就是分解质因数 n! = n * (n-1) *...

    java阶乘计算获得结果末尾0的个数代码实现

    在Java编程中,计算阶乘并确定结果末尾零的数量是一项常见的任务,特别是在解决数学问题或算法挑战时。阶乘是指一个正整数n的所有小于等于n的正整数的乘积,表示为n!。例如,5!(5的阶乘)等于5 × 4 × 3 × 2 × 1...

    c语言编程题之数学问题阶乘后的0.zip

    因此,我们需要计算n中有多少对5以及多少个25,以确定总的零数。 C语言中,我们可以编写一个函数来计算阶乘后的零: ```c #include int countTrailingZeros(int n) { int count = 0; for (int i = 5; n / i &gt;=...

    类的编写和使用三个案例 :1 判断三角形并求面积 2 求N次方幂的类 3 人民币转换大写

    接下来定义一个名为`Npower`的类,用于求一个数的N次幂。 ```java public class Npower { // 定义两个私有整型变量表示基数和指数 private int x; private int n; // 默认构造方法 public Npower() { } // ...

    SQLServer多种去除尾数多余的0

    在SQL Server中,处理数值类型的数据时,特别是浮点数(float)或定点数(decimal, numeric),我们可能会遇到一个问题:当数值末尾有过多的零时,它们并不总是直观地显示出来。尤其是在进行计算或者存储后,这些零...

    1060. For循环结构习题:上机练习4(n!)

    题目描述 计算n!,其中n由键盘输入。 输入 输入一行,只有一个整数n(0&lt;=n) 输出 输出只有一行(这意味着末尾有一个回车符号),包括1个整数。 样例输入 复制 4 样例输出 复制 24

    C++计算一个数字的二进制中0或1的个数原理及代码

    printf("\n数字%d的二进制数中,0的个数为%d个,1的个数为%d个\n", nData, nSum_Zero, nSum_One); return 1; } ``` **代码解析:** - **主函数**:`main()`函数首先定义了一个整数变量`nData`并赋值为300,然后...

    数据结构——用C描述

    例如,当y等于0时,需要执行10*100次,这可以表示为O(n),其中n代表循环次数。在1.5题中,列举了一系列不同的时间复杂度表达式,包括2100, (2/3)n, log2n, n1/2, n3/2, (3/2)n, nlog2n, 2^n, n!, 和 nn,这些都代表...

    利用Go语言追加内容到文件末尾

    n, _ := f.Seek(0, os.SEEK_END) // 从文件末尾的位置开始写入内容 _, err = f.WriteAt([]byte(content), n) if err != nil { return fmt.Errorf("写入文件时出错: %v", err) } return nil } func main()...

Global site tag (gtag.js) - Google Analytics