黑马程序员技术交流社区
标题:
方法递归 怎么看都看不明白呀,过程是怎样的???
[打印本页]
作者:
yaolv7
时间:
2016-4-8 18:14
标题:
方法递归 怎么看都看不明白呀,过程是怎样的???
public class Test {
public static void main(String[] args) {
int sum = getSum(4);
System.out.println(sum);
}
public static int getSum(int n) {
if(n == 1) {
return 1;
}
int temp = getSum(n - 1);
return temp + n;
}
}
这里不是把1返回给num了吗,为啥会是10?
作者:
syasuker
时间:
2016-4-8 20:49
本帖最后由 syasuker 于 2016-4-9 11:53 编辑
这个推演的结果注意的是变量temp接收temp + n;也就是求和从(n-1)+(n-2)+(n-3).....1
getSum(4) = temp+n = getSum(3)+4 = 6+4 = 10
getSum(3) = temp+n = getSum(2)+3 = 3+3 = 6
getSum(2) = temp+n = getSum(1)+2 = 1+2 = 3
复制代码
作者:
fanlelong
时间:
2016-4-8 21:34
syasuker 发表于 2016-4-8 20:49
虽然我不知道这蛋疼的代码是咋回事,但实际上是循环了3次每次的结果是这样的,而return temp是因为int temp ...
正解就是这样
作者:
晴苑
时间:
2016-4-8 21:42
二楼大神啊
作者:
yaolv7
时间:
2016-4-8 22:22
syasuker 发表于 2016-4-8 20:49
虽然我不知道这蛋疼的代码是咋回事,但实际上是循环了3次每次的结果是这样的,而return temp是因为int temp ...
大神,能说得明白点儿么{:3_65:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2