我正在编写一个带有数字/ 2的程序,然后打印剩余部分然后继续直到该数字为0.
实施例13/2余数= 1 6/2余数= 0 3/2余数= 1 1/2余数= 1
这是我写的。我尝试了一些不同的代码,但它只是导致无限循环。这似乎是编译但它只返回输入的原始数字。
public class BinaryDigits
{
int number;
int quotient;
int remainder;
public BinaryDigits(int input)
{
number = input;
}
public int getDigits()
{
while (quotient > 0)
{
quotient = number / 2;
remainder = number % 2;
System.out.println(remainder);
}
return number;
}
}
答案 0 :(得分:1)
<强>问题:强>
while (quotient > 0)
始终为number / 2
并且永远不会减少或增加,从而导致无限循环。
<强>溶液强>
int number = 13;
int remainder;
while (number != 0)
{
remainder = number % 2;
System.out.println(remainder);
number = number / 2;
}
您需要计算除number
并将其再次分配给number
变量,这样当它达到0时,它将会打破while循环。
<强>结果:强>
1
0
1
1
答案 1 :(得分:0)
好的我明白了。感谢
public class BinaryDigits
{
int number;
int quotient;
int remainder;
public BinaryDigits(int input)
{
number = input;
}
public int getDigits()
{
while (number > 0)
{
remainder = number % 2;
System.out.println(remainder);
number = number / 2;
}
return number;
}
}