给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
来源:互联网 发布:淘宝万斯正品店 编辑:程序博客网 时间:2024/04/28 10:53
1.末尾为0,说明肯定有2*5的因子,所以只要统计N*(N-1)*...1中因子2和5的个数。显然在这里因子2的个数是多于因子5的个数,所以只要统计有多少个因子5就行了。
int Count(int n){int sum=0;for(int i=n;i>1;i--){int k=i;while(k%5==0){ sum++;k=k/5;}}return sum;}下面这个循环更简洁计算整数N!中有多少个5.
int Count(int N){int sum=0;while(N){sum+=N/5;N=N/5;}return sum;}2.求N!的二进制表示中最低位1的位置,其实就是求N!中有多个因子2.
因此。类似上面的循环:
int Count(int N){int sum=0;while(N){sum+=N/2; N=N/2; //或者N=N>>1;}return sum;}拓展:给定整数n,判断它是不是2的方幂。
如果n是2的方幂,则n中肯定只有一个“1”,从而可以用n&(n-1)判断是否为0,来确定。
0 0
- 给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- python求解给定一个整数N,求N!末尾有多少个0,求N!的二进制中最低位1的位置
- 给定一个整数N,求N的阶乘N!末尾有多少个0?
- 求0个数--给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
- PKU1401:给定一个整数N,那么N的阶乘N!末尾有多少个0。
- 给定一个整数N,那么N的阶乘N!末尾有多少个0
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个0
- 给定一个整数N,求它的阶乘末尾有多少个0呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3628800,N!的末尾有两个0。
- 【编程之美】读书笔记:给定一个整数N,求N!末尾有多少个0
- 【编程之美】给定一个整数N,求N!末尾有多少个0
- 编程之美 给定一个整数N,那么N的阶乘N!末尾有多少个0?
- 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
- 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
- Android - 布局(layout) 详解
- ubuntu 忘记密码
- Lock与synchronized 的区别
- HDU1394最小逆序数
- 达芬奇ICETEK-DM6446-EVMS中xdcpaths.mak
- 给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
- ubuntu手动安装grub
- 强引用与弱引用(不太懂,不过文章形容的不错)
- poj3693 ,spoj687 重复次数最多的连续重复子串 后缀数组
- 利用SET STATISTICS IO和SET STATISTICS TIME 优化SQL Server查询性能
- Android ViewPager使用详解
- openssl TXT_DB error number 二 failed to update database
- ubuntu 触摸板不能使用的解决办法
- iOS保存数据的4种方式