编写一个递归方法,它返回数N的二进制表示中1的个数

来源:互联网 发布:在数据库中储存的是 编辑:程序博客网 时间:2024/05/19 13:09
package Homework;


import java.util.Scanner;


public class Recursion {


/**功能:编写一个递归方法,它返回数N的二进制表示中1的个数
* 算法:如果N是奇数,那么其1的个数等于N/2的二进制表示中1的个数加1
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int n =input.nextInt();
int sum = recursion(n);
System.out.println(sum);


}
public static int recursion(int n){
if(n<2){
return n;
}
return n%2+recursion(n/2);
}


}
0 0