問(wèn)題:編寫一個(gè)遞歸方法,返回?cái)?shù)N的二進(jìn)制表示中1的個(gè)數(shù)
解決:利用這樣一個(gè)事實(shí):如果N是奇數(shù),那么它等于N/2的二進(jìn)制表示中1的個(gè)數(shù)加1
include <iostream>
using namespace std;
int getones( int N)
{
if(N==1)
return 1;
if( N%2)
return getons(N/2) +1;
else return 1;
}
int main()
{
int N;
while(1){
cout<<"請(qǐng)輸入一個(gè)整數(shù):"<<endl;
cin>>N;
if(N==-1)break;
cout << getones(N);
}
return 0;
}