class love
{
public static void main(String args[])
{int i,j,sum=0;
for(i=1;i<=10;i++)
{
for(j=1;j<i;j++){
if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println(i);}}}
这是一个求10以内完数的代码,我都可以编译通过,但就是得不到结果(当java love的时候,没有一点反应 )
{
public static void main(String args[])
{int i,j,sum=0;
for(i=1;i<=10;i++)
{
for(j=1;j<i;j++){
if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println(i);}}}
这是一个求10以内完数的代码,我都可以编译通过,但就是得不到结果(当java love的时候,没有一点反应 )
class love {
public static void main(String args[]) {
int i, j, sum = 0; for (i = 1; i <= 10; i++) { for (j = 1; j < i; j++) { if (i % j == 0)
sum = sum + j;
}
if (sum == i)
System.out.println(i);
sum = 0; } }
}
int i, j, sum = 0;
for (i = 1; i <= 10; i++) {
sum = 0; //这里必须把sum重置。具体为什么,自己去思考吧
for (j = 1; j < i; j++) {
if (i % j == 0)
sum += j;
}
if (sum == i)
System.out.println(i);
}
}
public static void main(String args[]) {
int i, j, sum = 0;
for (i = 1; i <= 10; i++) {
sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0)
sum = sum + j;
}
// if (sum == i)
System.out.println(i + " " + sum);
}
}
}你可以看看输出为1 0
2 1
3 1
4 3
5 1
6 6
7 1
8 7
9 4
10 8说明你这样写sum永远不等于i,当然输出不了。所以你要在每次进循环的时候把sum的值归零,如楼上那样.