第一章课后习题1.5
1.5 编写一种递归方法,它返回数N的二进制中表示1的个数。利用这样一个事实:N为奇数,其1的个数为N/2的二进制中1的个数加1.
package com.algorithm.chapterone; /** * 编写一种递归方法,它返回数N的二进制中表示1的个数。利用这样一个事实:N为奇数,其1的个数为N/2的二进制中1的个数加1. * @author Gao·Rongzheng * */ public class QuestionFour { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(getBinary(11)); } public static int getBinary(int n) { //※ 递归方法的基准 if (n == 0) { return 0; } else if (n%2 != 0) { return getBinary(n >> 1) + 1; } else { return getBinary(n >> 1); } } }