我在这里遇到了一个小问题。基本上我下面的程序只是生成两个随机数并将它们相除。
在此之前,我插入一条语句,如果 num1 不能被 num2 整除,则 num2 必须生成一个 1 到“num1”之间的数字,直到它可被整除。
但最终它不断给我一个不可整除的数字(或者基本上给出小数点)。我尝试在互联网上寻找示例,并且非常了解模运算符。我这里哪里出错了?我只希望两个数字可以整除,仅此而已。
下面是我的代码:
int num1, num2, real_ans;
Random randomGenerator = new Random();
num1 = randomGenerator.nextInt(100) + 1;
num2 = randomGenerator.nextInt(100) + 1;
if (num1%num2!=0) {
do {
num2 = randomGenerator.nextInt(num1) + 1
} while(num1%num2==0);
}
real_ans = num1 / num2;
最佳答案
将 do/while 循环更改为:
do{
num2 = randomGenerator.nextInt(num1) + 1
} while(num1 % num2 != 0);
(注意!=
)。
这个循环直到数字完全相除。
关于java - 随机生成数字,直到它们完全相除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23366747/