在java中,在不创建方法的情况下,尝试在上限内找到一个完全数
我只是想在一定的上限内打印出完美的数字,但是我得到了其他显示的数字,它们不是完美的数字。我不是在尝试使用一种方法,而不仅仅是在主循环中使用所有东西。我需要一些帮助
public static void main(String arg[]) {
int upper;
int sum = 0;
int i;
System.out.println("Enter upper limit");
Scanner stnd = new Scanner(System.in);
upper = stnd.nextInt();
for(int n = 1; n < upper; n++) {
i = 1;
sum = 0;
while (i <= n/2) {
if (n%i == 0) {
sum = sum + i;
}
i++;
if(sum == n) {
System.out.println(n+" is a perfect number");
break;
} else {
}
}
}
}
# 1 楼答案
代码中有一个
while
循环,它将数字的因子相加。问题是,当while
循环尚未完成时,您正在检查总和。在24的情况下,你已经加起来了这是24,但你的循环还没有到12
你得走了
在
while
循环之后,而不是在循环中