查找输入整数二进制中1的个数
来源:互联网 发布:小米网络全球 编辑:程序博客网 时间:2024/05/21 15:47
题目
描述
请实现如下接口
public static int findNumberOf1(intnum)
{
/* 请实现 */
return 0;
}譬如:输入5 ,5的二进制为101,输出2
输入
输入一个整数
输出
计算整数二进制中1的个数
样例输入
5
样例输出
2
思路1
常规做法,循环判断2出现的次数,通过对2取余看第 i 位是否为1。
代码1
注意!!
要用unsigned 类型,否则n=n/2在负数的情况下只有0(右移会出错)。
#include<iostream>using namespace std;int main(){ unsigned int n,counter=0; while(cin>>n) { counter=0; do { if(n%2==1){ counter++;//统计 } n=n>>1;//也可以用=n/2; } while(n!=0); cout<<counter<<endl; } return 0;}
思路2
利用位操作符进行运算。
代码2
#include<iostream>using namespace std;void findNumberOf1(int num){ int counter = 0; while(num) { counter++; num &=num-1;//经典位操作 } cout<<counter<<endl; return;}int main(){ int intnum; while(cin>>intnum) { findNumberOf1(intnum); } return 0;}
0 0
- HWOJ 查找输入整数二进制中1的个数
- 华为OJ:查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 【华为OJ】查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 华为oj_查找输入整数二进制中1的个数
- 华为oj 查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 华为oj 查找输入整数二进制中1的个数
- *查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- Java实现查找输入整数二进制中1的个数
- 查找输入整数二进制中1的个数
- 华为OJ题库-查找输入整数二进制中1的个数
- 华为OJ基础篇-查找输入整数二进制中1的个数
- cocos2dx v2下载
- 6.消除过期对象的引用
- 【云知道】LoadRunner 录制问题集锦
- java多播
- 抽象类和接口的区别
- 查找输入整数二进制中1的个数
- MYSQL备份+增量恢复+引擎 -学习笔记
- 解决用mysql front 或者navicat导入sql脚本时候各种错误问题
- log库的使用
- Unix环境下的编程,所涉及的主要c语言知识
- js 数组排序
- 【maven】在setting文件配置中央仓库的镜像
- 设计模式(七)代理模式
- IntelliJ IDEA Ultimate 安装&激活