第一章课后习题1.5

时间:2019-08-27 17:17:50   收藏:0   阅读:44

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

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!