求1000以内的完数

public class HelloWorld {

     public static void main(String args[]) {

int sum=0,i,j;

for(i=1;i<=1000;i++){ 

      for(j=1;j<i;j++){

      if(i%j==0){

      sum=sum+j;

      }

      }

      if(sum==i){

      System.out.println(i);

      

      }

      

}

}

}

为什么将内for循环改为“for(j=1,sum=0;j<i;j++)”才正确,num=0不是开始就已经定义了吗?

Codeplayer
浏览 1651回答 1
1回答

Its_forever

进入第二个for循环的时候需要每次把sum置为0。否则sum就一直累加走了,就不会找到正确的结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java