题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)。 如:5
输出描述:
这个数转换成2进制后,输出1的个数。如:2
方法1:
位运算,对每位进行判断,判断是否为1.
#include<iostream>
using namespace std;
int main(){
int num;
cin>>num;
int count=0;
int a=1;
while(a)
{
if(num&a) count++;
a<<=1;
}
cout<<count;
return 0;
}方法2
找规律,每次num&(num-1)后少一个1.
while(num){
count++;
num=num&(num-1);

京公网安备 11010502036488号