欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用递归算法计算一个自然数的二进制表示中的“1”的个数

程序员文章站 2022-03-11 22:04:43
...

用递归算法计算一个自然数的二进制表示中的“1”的个数

/*
 *  计算一个自然数的二进制表示中的“1”的个数
 *  用递归算法
 */
public class recursionTest {

    public static void main(String[] args) {
        for(int i=-100;i<100;i++){
            System.out.print("自然数:"+i+"  ");
            System.out.print("二进制表示:"+Integer.toBinaryString(i)+"  ");
            System.out.println("包含"+getBinary(i)+"个1");
        }
    }
    public static int getBinary(int num){
        if(num==0)
            return 0;
        if(0==num%2){
            return getBinary(num/2);
        }else{
            return getBinary(num/2)+1;
        }
    }

}