本题在刚开始做的时候,有种摸不着头脑的感觉,写的太少,下次再碰到这种需要考虑位操作符;
代码采用c++,编译环境是vs2013,OS:win7 64bit;(有个小想法,以后做题要c++做一遍,Java再做一遍)
talk is cheap, show the code:
#include<iostream>
using namespace std;
int getCnt(int num){
int cnt;
while(num){
num &= num—; //参考了别人怎么做的
cnt++;
}
return cnt;
}
int main(void){
int num;
int cnt;
cin>>num;
cnt = getCnt(num);
cout<<cnt<<endl;
return 0;
}