Java 使用模数运算符时如何保存新数字?
我正在写一个程序,它取一个数字/2,然后打印余数,然后继续,直到数字为0 示例13/2余数=1 6/2余数=0 3/2余数=1 1/2余数=1 这是我写的。我尝试了一些不同的代码,但它只是导致了一个无限循环。这似乎是编译,但它只返回输入的原始数字Java 使用模数运算符时如何保存新数字?,java,Java,我正在写一个程序,它取一个数字/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) {
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;
}
}
问题:
while (quotient > 0)
int number = 13;
int remainder;
while (number != 0)
{
remainder = number % 2;
System.out.println(remainder);
number = number / 2;
}
1
0
1
1
它将始终是number/2
,并且不会减少或增加,从而导致无限循环
解决方案:
while (quotient > 0)
int number = 13;
int remainder;
while (number != 0)
{
remainder = number % 2;
System.out.println(remainder);
number = number / 2;
}
1
0
1
1
您需要计算除以的数字
,并将其再次赋给数字
变量,这样当它达到0时,它将中断while循环
结果:
while (quotient > 0)
int number = 13;
int remainder;
while (number != 0)
{
remainder = number % 2;
System.out.println(remainder);
number = number / 2;
}
1
0
1
1
好吧,我知道了。谢谢
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;
}
}
您想将数字除以2,然后打印余数。您确定数字不变吗?或者它只是到了1并且
1%2
总是1,所以它被卡在这里了?谢谢,我一定是在你之前发布的