菜鸟-求教-各位大虾
时间: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{}内),就出现两个结果,很纠结啊!! 请各位大虾帮帮忙,谢谢!
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28