关闭

编写一个递归方法,返回数N的二进制表示中1的个数

标签: C++二进制
794人阅读 评论(0) 收藏 举报
分类:

问题:编写一个递归方法,返回数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);
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4883次
    • 积分:96
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档