gpt4 book ai didi

java - 为什么内循环范围会对解决这个问题的方式产生影响?

转载 作者:行者123 更新时间:2023-12-02 09:48:47 26 4
gpt4 key购买 nike

Write a static method printNumbers that takes an integer max as an argument and prints out all perfect numbers that are less than or equal to max.

起初,我一直得到错误的答案,因为在我将其更改为 j < i 之前,内部循环被设置为 j < max。但是,我不明白为什么这个范围很重要,因为不会 i % j != 0无论如何,即使 j 的范围更大?

for (int i = 1; i <= max; i++) {   
int sum = 0;

for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.print(sum + " ");
}
}

如果我改变了内循环j < max ,然后printNumbers(6)给出 1 和 6,但是 printNumbers(500)仅给出 1,没有其他数字。

最佳答案

如果您设置 j < max在内循环中,然后当 j = i , i % j == 0返回true并扭曲你的结果。这是编码中需要注意的数学错误的一个很好的例子。

关于java - 为什么内循环范围会对解决这个问题的方式产生影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56469234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com