有道问题是这样的:给定一个正整数N,那么N的阶乘N!末尾中有多少个0呢?例如:N=10,N=3628800,则N!的末尾有两个0;直接上干货,算法思想如下:对于任意一个正整数N!,都可以化为N!= (2^X)*(3^Y)* (5^Z)......的形式,要求得末尾0的个数只需求得min(X, Z)即可,由于是求N!,则X >= Z; 即公约数5出现的频率小于等于2出现的频率,即Z=min(X, Z),即出现0的个数等于公约数5出现的次数;
求N的阶乘N!中末尾0的个数
最新推荐文章于 2020-12-10 03:51:27 发布
博客探讨了如何确定一个正整数N的阶乘N!末尾0的个数。算法关键在于找到5的因子在N!中的数量,因为2的因子总是比5多。举例说明,N=10时,N!的末尾有2个0。提供了两种不同的实现方法。
摘要由CSDN通过智能技术生成