问题描述
1、给定一个整数N,阶乘N!末尾有多少个0
2、求N!的二进制表示中最低位1的位置
1、给定一个整数N,阶乘N!末尾有多少个0
举例:10!=3 628 800,则 N!的末尾有两个0
思路:
即,知道 Z ,就知道N!中含有0的个数
方法一:求出1~N中每一个数被5整除的因子的个数,比较笨
代码:
- //统计 1-N 中被5整除的因子的总个数
- int FindZeroNum(int N)
- {
- int nCount = 0;
- for (int i = 5;i < N + 1;i++)
- {
- int nCur = i;
- while(nCur % 5 == 0)//统计nCur中被5整除的因子的个数,即有几个5