求高手解释下这个java程序是怎么运行的?其实就是递归调用是什么意思?

public class Testdigui {
public static void main(String args[]){
System.out.println("计算结果:"+sum(100));
}
public static int sum(int num){
if(num==1){
return 1;
}else{
return num+sum(num-1);
}
}
}

第1个回答  2013-08-05
一步一步来,sum(1)返回1,意思是sum(1)=1
sum(2)在return的时候返回2+sum(1)=2+1意思是sum(2)=2+sum(1)=2+1
sum(3)..............................3+sum(2)=3+2+1意思是sum(3)=3+sum(2)=3+2+sum(1)=3+2+1
第2个回答  2013-08-05
先是调用 sun(100),
sum方法里 if 传进来的参数不是等于1就调用sun(传进来的参数-1)
这样一直调用就是递归了
第3个回答  2013-08-05
这个还真难表达,就是计算1-100所有数之和,你可以把它分解成100个步骤:就是1+2+、、100,每一个步骤里面执行 两个数相加,一直执行100次
第4个回答  2013-08-05
,你的代码错了
相似回答