文档章节

递归计算二进制表示中1的个数

断桥残雪断桥残雪
 断桥残雪断桥残雪
发布于 2015/05/04 23:58
字数 206
阅读 36
收藏 0
 /*use the recursive algorithme to calculate 
 * the number of "1" in the binary expression
 * of an Integer N.
 * Note:if N is an odd, then
 * the result is the result of N/2 plus 1.
 * And the program use the bit operation to
 * improve efficency ,though it's seemingly
 * not necessary ,but the idea I think is good.
 * The program is writed by Zewang Zhang ,at
 * 2015-5-4,in SYSU dorms.
 */

public class CalculateNumberInBinaryExpression {
	//Main method.
	public static void main(String[] args) {
		
		//For example ,make N equals 13 ,the result shows 3
		System.out.println(numOfEven(13));
		
		//For example ,make N equals 128 ,the result shows 1
		System.out.println(numOfEven(128));
	}
	
	//The static method of numOfEven is the recursive method.
	public static int numOfEven(int x) {
		
		//The base of recursive.
		if(x==0) {
			return 0;
		}
		
		//If x is an odd.
		else if(x%2!=0) {
			return numOfEven(x>>1)+1;
		}
		
		//If x is an even except 0.
		else {
			while(x%2==0) {
				x=(x>>1);
			}
			return numOfEven(x);
		}
	}
}

© 著作权归作者所有

断桥残雪断桥残雪
粉丝 52
博文 139
码字总数 94909
作品 0
广州
程序员
私信 提问
海明距离 Hamming Distance

问题: The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers and , calculate the Hamming distanc......

叶枫啦啦
2017/08/22
19
0
递归算法之不用乘号的乘法——用位移实现乘法(dart语言实现)

  前两天突发奇想,写一个乘法的实现,但不用乘号*。并测试一下性能如何。因此就有了下面的代码:(本文主要目的是为了玩递归和位移,因此仅限自然数) 首先,标准乘法: 1 int commonMult...

Burkut
05/10
0
0
LeetCode算法题-Binary Watch(Java实现)

这是悦乐书的第216次更新,第229篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第84题(顺位题号是401)。二进制手表顶部有4个LED,代表小时(0-11),底部的6个LED代表分钟(...

小川94
2018/12/29
0
0
码农翻身讲计算机基础:补码,程序编译与递归

从1加到100:一道简单的数学题挑战下你的大脑 原创: 刘欣 码农翻身 2017-01-03 2017年的第一篇, 写给刚刚踏入计算机编程领域的小白吧。 所谓编程,就是把自然语言的需求翻译成计算机语言,...

你的猫大哥
2018/03/11
0
0
Android 面试文档分享

一、概述 最近在准备面试的东西,整理了一些读书笔记分享给各位 百度网盘地址,大家可以自由下载,以下内容完全原创。 前两部分是对于一些 经典书籍的读书笔记 和 面试题,都是上学看书的时候...

泽毛
2017/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL8.0.17 - Multi-Valued Indexes 简述

本文主要简单介绍下8.0.17新引入的功能multi-valued index, 顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持 (感觉官方未来一定...

阿里云官方博客
27分钟前
3
0
make4.1降级 make-3.81、2错误

在编译 make-3.82 的时候出现如下错误提示 glob/glob.c:xxx: undefined reference to `__alloca'` 修改 /glob/glob.c // #if !defined __alloca && !defined __GNU_LIBRARY__ # ifdef __GNUC......

Domineering
28分钟前
2
0
Rainbond集群的安装和运维的原理

本文将解读Rainbond集群的安装和运维的原理,使用户基本了解Rainbond的安装机制和运维重点,便于用户搭建大型Rainbond集群。 1.Rainbond集群节点概述 1.1 节点分类 属性 类型 说明 manage 管...

好雨云帮
40分钟前
5
0
好程序员大数据学习路线分享UDF函数

1.为什么需要UDF? 1)、因为内部函数没法满足需求。 2)、hive它本身就是一个灵活框架,允许用自定义模块功能,如可以自定义UDF、serde、输入输出等。 2.UDF是什么? UDF:user difine fun...

好程序员官方
42分钟前
4
0
Groovy中 Base64 URL和文件名安全编码

Base64 URL和文件名安全编码 Groovy支持Base64编码很长一段时间。 从Groovy 2.5.0开始,我们还可以使用Base64 URL和Filename Safe编码来使用encodeBase64Url方法对字节数组进行编码。 结果是...

白石
45分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部