題目描述:
請實現一個函數,輸入一個整數,輸出該數二進制表示中1的個數。
輸入描述:
輸入的第一行爲一個無符號的整形數字
輸出描述:
輸出一個整數表示該數二進制中1的個數
#include<iostream>
using namespace std;
int numberHas1OfSimple(unsigned int input);
int numberHas1OfUp(unsigned int input);
int main()
{
unsigned int input;
cin>>input;
int result=numberHas1OfSimple(input);
printf("%d",result);
}
//簡單版
int numberHas1OfSimple(unsigned int input)
{
int number=0;
unsigned int index=1;
while(index){
if(index & input){
number++;
}
index=index<<1;
}
return number;
}
//升級版
int numberHas1OfUp(unsigned int input)
{
int number=0;
while(input){
input=(input-1) & input;
number++;
}
return number;
}