+ -
当前位置:首页 → 问答吧 → 菜鸟-求教-各位大虾

菜鸟-求教-各位大虾

时间:2011-09-10

来源:互联网

各位大虾 俺这个菜鸟又有问题求教了。
public class Test1{
  public static void main(String[] args){
  Test1 t=new Test1();
  t.play();
  t.tiger();
  }

  public void play(){

int r,j,i;
for(i=1;i<1000;i++){
r=0;
for(j=1;j<i;j++){
if(i%j==0){
r+=j;
}
}
if(r==i){
System.out.print(r+" ");
}
}
 
  }
   
  public void tiger(){
  int r=0;
  for(int i=1;i<1000;i++){
 
  for(int j=1;j<i;j++){
  if(i%j==0){
  r+=j;
  }
 
  }
  if(r==i){
System.out.print(r+" ");
}
  }
  }
}


这两个方法基本上完全一样,但是就r的定义不同(一个在方法内,一个在for{}内),就出现两个结果,很纠结啊!! 请各位大虾帮帮忙,谢谢!

作者: hhjwolf2012   发布时间: 2011-09-10

这两个是不可能一样的,play中每次外层循环重新开始的时候r都被重新置0了;而另外一个则不然

作者: Ol_lO   发布时间: 2011-09-10

楼上正解!

作者: xue785920414   发布时间: 2011-09-10

热门下载

更多