第一章课后习题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);
        }
    }
}

 

posted @ 2019-08-27 16:34  从入门到入坟  阅读(220)  评论(0编辑  收藏  举报