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

原创 2013年12月02日 21:24:26

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

写一个函数返回参数二进制数中1的个数的几种方法

方法一: 首先,简单思路为:给该整数模2除2我们就能得到该数2进制的每一位 用9举例,9的二进制数为1001   (9%2=1,(9/2)%2=0, (9/2/2)%2=0, (9/2/2/2)%...

递归实现数N的二进制表示

实现递归方法,使它返回数N的二进制表示中的1的个数。(如果N是奇数,那么N的二进制表示中的1的个数为N/2的二进制表示的1的个数加1)。实现见文章最后。  数据结构和算法(Java语言描述)的第一章...

整数的二进制数中1的数目,1-N中1的总共个数,如何判断一个数是否为2的整数次幂.

①题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。 分析:这是一道很基括微本的考查位运算的面试题。包软在内的很多公司都曾采用...

求无符号数二进制中1的个数&&求一个字符串中最长的连续子串

求无符号数二进制中1的个数&&求一个字符串中最长的连续子串

求一个数二进制表示法中1的个数诸多方法

求一个unsigned int 数的二进制表示中有多少个1?这是一道面试题可以用以下的一些方案。第一种是很容易想到的采用循环的方式并且与1进行位与运算,具体代码如下。 1unsigned int Ge...

求一个数二进制表示法中1的个数诸多方法

求一个unsigned int 数的二进制表示中有多少个1?这是一道面试题可以用以下的一些方案。第一种是很容易想到的采用循环的方式并且与1进行位与运算,具体代码如下。 1unsigned int Ge...

编程之美-求二进制数中1的个数方法整理

【试题描述】 方法一:穷举法(暴力搜索) 方法二:使用位操作 方法三: 方法四:使用分支操作 方法五:查表法,时间复杂度O(1...

将一个整数M分成N个数相加的和,要求每个数至少要大于等于1

Du熊正在负责一个大型的项目,目前有K台服务器,有N个任务需要用这K台服务器来完成,所以要把这些任务分成K个部分来完成,在同上台服务器上执行的任务必须是连续的任务,每个任务有各自需要的执行时间。 例...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)