黑马程序员技术交流社区
标题:
递归问题
[打印本页]
作者:
心灵之歌
时间:
2013-8-20 08:51
标题:
递归问题
看到f就头晕……这里的return 1是返还谁……然后怎么就停止了……看着这么少,可就是理解不了,越看越急越心酸
public static void Recursion{
int n=10;
int y=f(n);
System.out.println(y);
}
public static int f(int n){
if(n==1){
return 1;
}
return n+f(n-1);
}
作者:
漪顿
时间:
2013-8-20 09:12
f(10)
n=10
因为10不等于1;
所以执行 return n+f(n-1);
所以10+f(9);
——————-————
f(9)
n=9
因为9不等于1;
所以执行 return n+f(n-1)
所以9+f(8);
-----------------------------
f(8)
n=8
8不等于1;
所以执行 return n+f(n-1);
所以8+f(7);
-------------------------------
以此类推
当f(2)
n=2时
n不等于1
2+f(1);
---------------
f(1)
n=1;
返回1
返回给了2+f(1);我觉得这一步能理解,就理解了,你再好好思考思考
也就是2+1=3
接着又将3返回给了3+f(2);
以此类推就求出来了
作者:
EYE_SEE_YOU
时间:
2013-8-20 13:44
记得高琪的java300有一集专门讲递归
作者:
javamov
时间:
2013-8-20 13:56
可以设置断点跟踪。
作者:
meng
时间:
2013-8-20 14:52
给你演示最后几步,如图所示,
83H(LCNUBSEQ2]X{$_~]0XF.jpg
(55.7 KB, 下载次数: 30)
下载附件
2013-8-20 14:52 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2