递归实现,返回一个数N的二进制表示中1的个数。如果N是奇数,那么其1的个数等于N/2的二进制表示加1。
public class one1_5 {
public static int Ndejz(int n) {
if(n == 0) {
return 0;
}
if(n == 1 || n== 2){
return 1;
}
if(n % 2 ==0) {
return Ndejz(n/2);
}
return Ndejz(n/2)+1;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入一个数 N:");
int N = s.nextInt();
System.out.println(N+"的二进制数中有"+Ndejz(N)+"个1");
}