`
为心中梦想挥剑的那一刹那
  • 浏览: 7424 次
  • 性别: 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

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

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

    本文将深入探讨“零基础学算法源码”涵盖的常用算法、排序和查找技术,并结合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