我没描述明白
例如:3=1*2^1+1*2^0 其中包含3个1
4=1*2^2+0*2^1+0*2^0 其中包含2个1
。依次力推求n拆分成二进制数中1的个数?
例如:3=1*2^1+1*2^0 其中包含3个1
4=1*2^2+0*2^1+0*2^0 其中包含2个1
。依次力推求n拆分成二进制数中1的个数?
解决方案 »
- 如何更好的理解string和stringbuffered类型
- 原子锁怎样改写
- Ant出错问题请教,是<java节点出的错
- java的Socket问题! 帮忙!
- 使用JInternalFrame实现MDI
- 什么是事件指派线程???SwingUtilities.invokeLater()和SwingUtilities.invokeAndWait()有什么区别??
- 我是一个JAVA菜鸟,请问大家一般都用什么工具进行开发?
- 如何装设一个timer对象每隔秒变换一个图形依此为空心矩行,实心矩行
- 请教一个关于得到一个时间段内,按星期排列的日期的算法,请近来看看哦
- Applet的菜单为什么不能显示日文
- 请高手诊断我的聊天室程序
- java script 问题求助
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);
}
}
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);
}
}