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);
        }
    }
}

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄