我在这里遇到了一个小问题。基本上我的程序下面只生成两个随机数并将它们分开。
在此之前我插入一个语句,如果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;
答案 0 :(得分:2)
将do / while循环更改为:
do{
num2 = randomGenerator.nextInt(num1) + 1
} while(num1 % num2 != 0);
(请注意!=
)。
这循环直到数字完全分开。
答案 1 :(得分:0)
你正在迭代条件,如果num1
可被num2
整除,请继续迭代。将条件更改为do{...}while (num1%num2 != 0);
。
您应该能够找到一个可以将num1
与该代码分开的数字。它仍然无法工作的唯一情况是num1
为素数,因此我建议您检查num1
是否为素数而仅生成num2
,num1
为不是素数。