问题:编写一个递归方法,返回数N的二进制表示中1的个数
解决:利用这样一个事实:如果N是奇数,那么它等于N/2的二进制表示中1的个数加1
代码:#include<iostream>
using namespace std;
int ones(int n);
void main(){
int n;
cin>>n;
cout<<ones(n);
}
int ones(int n){
if(n<2)
return n;
else return n%2+ones(n/2);
}