我知道这个问题之前已经被问过很多次了,但是我还没有看到有人使用这种方法。在任何关于这是家庭作业的评论之前,是的,它是,但我不是在寻找一个完整的答案,我只是在寻找一个正确的方向。基本上,我对这段代码的问题是它只输出数字“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;
}
}