我没描述明白
例如:3=1*2^1+1*2^0   其中包含3个1
      4=1*2^2+0*2^1+0*2^0    其中包含2个1
      。依次力推求n拆分成二进制数中1的个数?
                

解决方案 »

  1.   


    public class Test {
    public static void main(String[] args) {
    int value = 10;
    String s = Integer.toString(value, 2);
    StringBuffer str = new StringBuffer();
    for (int i = 0; i < s.length(); i++) {
    if (i > 0) {
    str.append("+");
    }
    str.append(s.charAt(i) + "*2^" + (s.length() - i - 1));
    }
    System.out.println(str);
    //统计str中1的个数
    int count = 0;
    for(int i=0;i<str.length();i++){
    if(str.charAt(i)=='1'){
    count++;
    }
    }
    System.out.println(count);
    }
    }
      

  2.   

    public class Transform {
        public static void main(String a[]){
         int n=4,count=0,digit=0;
         while(n>0){
         if(n%2==1)
         count++;
         n/=2;
         digit++;
         }
         for(int i=0;i<digit;i++){
         String s=i+"";
         for(int j=0;j<s.length();j++){
         if(s.charAt(j)=='1'){
         count++;
         }
         }
         }
         System.out.println(count);
        }
    }