一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。
编程 找出1000以内的所有完数。(因子:除去这个数本身的其它约数)
我将count=0这个置零操作放在if语句内执行,就输出不了任何结果,就像下面这样
public class day04 {
public static void main(String[]args){
int count = 0;//定义计数器
for(int i = 1;i <= 1000;i++){ //遍历1000以内整数
for(int j = 1;j < i;j++){ //寻找因子
if(i % j == 0){ //因子求和
count += j;
}
}
if(count == i) { //判定因子和是否为该整数
System.out.println(i);
count = 0; //因子和置零
}
}
}
}
但是把这行置零语句放到if循环外面就可以输出正确答案
public class day04 {
public static void main(String[]args){
int count = 0;//定义计数器
for(int i = 1;i <= 1000;i++){ //遍历1000以内整数
for(int j = 1;j < i;j++){ //寻找因子
if(i % j == 0){ //因子求和
count += j;
}
}
if(count == i) { //判定因子和是否为该整数
System.out.println(i);
}
count = 0; //因子和置零
}
}
}
我很疑惑,if语句内不应该是先执行输出,再置零,所以和放在外面应该一样输出才对啊
为什么放在里面就输出不了,和if语句的执行有关吗?