菜鸟-求教-各位大虾
各位大虾 俺这个菜鸟又有问题求教了。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{}内),就出现两个结果,很纠结啊!! 请各位大虾帮帮忙,谢谢! --------------------编程问答-------------------- 这两个是不可能一样的,play中每次外层循环重新开始的时候r都被重新置0了;而另外一个则不然 --------------------编程问答-------------------- 楼上正解! --------------------编程问答-------------------- 1楼的说法是对的。当i=2开始运算的时候play()中r=0;另外一个等于1 --------------------编程问答-------------------- 顶楼上的!
补充:Java , Java相关