给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
来源:互联网 发布:人工智能学什么专业 编辑:程序博客网 时间:2024/06/05 21:02
题目:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
思路:如果N是一个很大的数,它的阶乘可能已超出计算机所能计算的最大范围,因此可能会导致溢出。我们换个角度想,
N!=1×2×3×4×5×6×··· ×N
我们可以对N!进行分解质因数,即
N!=(2^x)×(3^y)×(5^z) ··········
可以看到2和5相乘必然会产生一个10,而这个10会在阶乘的末尾添加一个0。那么问题就转化为(2^x) ×(5^z))可以产生多少个0,即min(x,z),显然x肯定大于z(能被2整除的数肯定比5多),最终问题转化为求z的个数,-即找出1…N能分解出多少个5?
实现代码:
int countFactorialZero(int n){ int i = 1; int count = 0; int j; for (; i <= n; ++i) { j = i; while (j%5 == 0) { count++; j /= 5; } } return count;}
阅读全文
0 0
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3628800,N!的末尾有两个0。
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
- PKU1401:给定一个整数N,那么N的阶乘N!末尾有多少个0。
- 给定一个整数N,那么N的阶乘N!末尾有多少个0
- 给定一个整数N,那么N的阶乘N!末尾有多少个0
- 求0个数--给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- 给定一个整数N,求N的阶乘N!末尾有多少个0?
- 编程之美 给定一个整数N,那么N的阶乘N!末尾有多少个0?
- 实现一颗二叉树的层序遍历/给定一个整数N,那么N的阶乘N!末尾有多少个0呢
- 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
- 给定一个整数N,求它的阶乘末尾有多少个0呢?
- Leetcode—154. Find Minimum in Rotated Sorted Array II
- spark 使用lda算法提取中文文档文本主题
- html的表格、视频、音频学习总结
- vim的使用
- 输入字符串“I am a student”,要求输出字符串“student a am I”
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
- hdu 1224 Free DIY Tour
- 数据结构总结
- C.C++动态内存管理的一些问题
- 日常学习2017.7.22
- 两个链表的第一个公共结点
- 高斯消元 矩阵求秩
- 1----程序的本质
- L1-017. 到底有多二