简单的C++程序题总结
来源:互联网 发布:艾灸淘宝推广文章 编辑:程序博客网 时间:2024/06/03 19:38
1、求一个数的二进制中1的个数。
思想的关键在于x=x&(x-1)这里,例如二进制为0x0729,即x=0000 0111 0010 1001,那么x-1=0000 0111 0010 1000,经过与运算,都为1的时候才为1,可得x&(x-1)=0000 0111 0010 1000,成功的把x的最后一个1变为0了,通过循环可得所有1的个数。
#include <stdio.h>int func(int x){int countx=0;while(x){countx++;x=x&(x-1);}return countx;}int main(int argc, char **argv){printf("%d\n",func(9999)); return 0;}
2、n!的后门连续0的个数。
对于一个数n的阶乘 n! ,计算其后面有几个连续的零。 我们知道,10 = 2 * 5。每一个 2 与一个 5 相乘,结果就增加一个零。所以求 n! 后面的连续零的个数,其实就是求其中相乘的数含有因子每对因子 2 与 5 的个数。又因为从1到某个数,所含 2 的个数比 5 多,所以问题就可以进一步简化到求含有因子5的个数。
#include <iostream>#include <string>using namespace std;int zeroCount ( int n) { int counter = 0; while(n){counter+=n/5;n/=5;}return counter; } int main(){cout<<zeroCount(100)<<endl;system("pause");return 0;}
0 0
- 简单的c程序
- 简单的c程序
- 简单的C++程序题总结
- 简单的c窗口程序
- 简单的c数字程序
- 一个简单的C程序
- C简单的小程序
- 一个简单的C程序
- 一些简单的C程序
- 简单的C语言程序
- 简单的c语言程序
- C的一些简单程序
- C的几个简单程序
- C 宏的简单总结
- sony招聘中的一道简单的C程序填空题
- sony招聘中的一道简单的C程序填空题
- 西南科技大学OJ题 最简单的C程序0612
- 简单的读配置文件的C程序
- java,hibernate和sql server对应的数据类型
- IOS自动化打包
- Android项目实践
- 微信自定义开发demo
- Spring的国际化
- 简单的C++程序题总结
- Win7下qt5.3.1+opencv2.4.9编译环境的搭建
- C语言 const类型变量
- 简单计算题!我就是笨!
- 品尝人生之苦:褚时健与他的褚橙
- iOS iphone5屏幕适配 autosizing [此博文包含图片]
- Hrbeu 1209
- javap的基本用法
- ios7状态栏以及导航栏