`
为心中梦想挥剑的那一刹那
  • 浏览: 7371 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

n!末尾到底有多少个零的算法问题

 
阅读更多

 看了一下网站,这个问题主要是要从到底有多少个因子5来得出结果。因为每个5与前面一个偶数相乘的话都能都到一个0!所以在求n!的时候,遍历n,分别看1~n中的每个数有多少个因子5,最后n!末尾就有多少个0.下面是代码:

#include<iostream>
using namespace std;

//n!后面有多少个零
int function(int n){
	int count = 0;
	for (int i = n; i >= 1; --i){
		int j = i;
		while (j % 5 == 0){
			count++;
			j = j / 5;
		}
	}
	return count;
}
//求n!
int function2(int n){
	if (n == 1)
		return 1;
	else{
		return (n*function2(n - 1));
	}
}
int main(){
	cout << function2(10)<<","<<function(10) << endl;
	return 0;
}

 代码:

分享到:
评论

相关推荐

    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语言实现n!最后一位非零数字的算法与程序分析.pdf

    文章通过这种算法设计和C语言实现,提供了一种解决大数阶乘末尾非零数字的有效方法,特别适合处理超出C语言基本数据类型范围的阶乘计算。这种方法对于理解和优化计算大数阶乘的算法具有重要的教学和实践价值。

    零基础学算法源码 算法 常用算法 排序 查找

    本文将深入探讨“零基础学算法源码”涵盖的常用算法、排序和查找技术,并结合NOIP(全国青少年信息学奥林匹克竞赛)的试题精解,帮助读者构建坚实的算法基础。** ### 一、常用算法 常用算法包括分治法、动态规划、...

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

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

    n为复合数的FFT算法

    3. **混合基FFT算法**:当序列长度\( N \)是一个复合数时,可以将其分解为若干因子的乘积,并利用这些因子构建混合基FFT算法。基2算法仅仅是混合基FFT算法的一种特殊情况。 #### 混合基FFT算法原理 混合基FFT算法...

    C语言基本算法.pdf

    末尾零的数量:算法通过统计因子5的数量来确定100!末尾零的数量,因为10的因子是2和5,而因子2通常比因子5多,所以只需计算因子5即可。优化后的算法可以计算任意N!末尾的零数量,只需遍历从5到N的因子,并累加能被5...

    零基础学算法

    从《零基础学算法》这一书籍来看,我们可以总结并提炼出一些重要的算法学习知识点,以帮助初学者更好地理解和掌握算法的基础概念与应用实践。 ### 一、算法的基本概念 1. **定义**:算法是一系列解决问题的具体...

    算法设计与分析经典题目源代码!

    在这个文档中,我们主要关注的是...总之,这个文档提供了多种算法的经典问题实例和C++实现,有助于学习者理解和掌握算法设计与分析的基本概念,同时通过实际运行和性能比较,能更深入地理解各种算法的适用场景和优劣。

    从零开始学算法:十种排序算法介绍.pdf

    《从零开始学算法:十种排序算法介绍》是一本旨在教授初学者算法知识的教程,特别是关于排序算法的部分。排序算法是计算机科学中的基础知识,是处理数据和解决问题的关键工具。这里主要介绍了三种最基础的排序算法:...

    经典算法实例.pdf

    这个问题的递归解法可以分为三个步骤:将前n-1个盘子从A移动到B(辅助棒),将最大的盘子从A移动到C(目标棒),最后将B上的n-1个盘子移动到C。河内之塔问题的解决通常需要2^n - 1次移动,其中n是盘子的数量。 接...

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

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

    算法在信息学奥赛中的应用.doc

    3. **输入**:算法可以接受零个或多个输入,用来描述处理的对象或初始状态。 4. **输出**:算法至少产生一个输出,用来反映对输入数据处理的结果。 5. **可行性**:算法中每一步的操作都是可行的,即能够在实际环境...

    (数据结构与算法)两个大整数相加

    这篇博客文章“(数据结构与算法)两个大整数相加”提供了一个解决方案来应对这个问题。 首先,我们需要理解如何存储大整数。在大多数编程语言中,内置的整数类型如int或long通常有最大值限制,对于超出这些范围的...

    Last-non-zero-digit.zip_Zero_数论

    标题中的"Last-non-zero-digit.zip_Zero_数论"暗示了我们正在探讨一个关于数论的数学问题,具体来说是寻找大数阶乘末尾非零...这个问题不仅在理论上有意义,也在实际应用中有所体现,比如在加密算法和随机数生成中。

    C语言趣味算法

    5. 阶乘尾数零的个数:通过因式分解质数的方式确定一个数阶乘后末尾零的个数,常用于优化计算大数阶乘的复杂度。 6. 杨辉三角形:一个经典的数字排列图形,通过递归或者迭代算法生成,是组合数学中的一个重要概念。...

    算法竞赛出题模板(奇数还是偶数,这是个问题)

    在实际的算法设计中,判断一个整数是奇数还是偶数的方法有很多种。最直观的是使用模运算,如果一个整数n除以2的余数为0,那么它是偶数,否则是奇数。例如,`if (n % 2 == 0)` 就是一个简单的C++代码片段来实现这个...

    吉大 各种基本ACM必备算法基础

    可以通过Gale-Shapley算法在O(N^2)时间内解决这个问题。 ##### 拓扑排序 拓扑排序是对有向无环图的一种排序方法,使得图中的每条有向边从较小编号的节点指向较大编号的节点。拓扑排序可以使用深度优先搜索或者宽度...

Global site tag (gtag.js) - Google Analytics