我知道这个问题已经被问过很多次了,但是我还没有看到使用这种方法的任何问题。在对此发表任何评论之前,是的,是的,但是我不是在寻找完整的答案,而是在朝着正确的方向发展。基本上,我的这段代码的问题是它只输出数字“ 0”。我想知道哪里出了问题。
public class Perfect {
public static void main(String[] args) {
final int LIMIT = 1_000;
int i;
int x;
int works = 0;
for(i = 1; i <= LIMIT; i++)
if(works == i - 1) {
System.out.print(works + " ");
}
for(x = 2; x <= i; x++)
if(i % x == 0) {
works = works + x;
}
else
works = works;
}
}
最佳答案
您做错的一件事是您没有为循环使用{}
。
缩进的方式不是执行方式。
它的执行方式如下。
for(i = 1; i <= LIMIT; i++) {
if(works == i - 1) {
System.out.print(works + " ");
}
}
for(x = 2; x <= i; x++) {
if(i % x == 0) {
works = works + x;
}
else {
works = works;
}
}
最好始终将
{}
与循环和if语句一起使用,以防止此类错误。