如何分析递归的程序

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:58:57
怎么看递归的程序能明白一些,做了3年程序了,看递归的程序还是一头雾水,跟着跟着就乱套了,请问分析这种递归的程序有什么技巧没有啊?很迷茫,希望得到指点。

画一个树形图,一层层的向下分析,在最后一层if语句里面得到结果之后,向上返回
假定一个简单的
fac(int n)
{
if (n==1) return 1;
n=n*fac(n-1)
}
假设n=3
fac(3)->3*fac(2)->3*2*fac(1)->3*2*1

同样可以对数的遍历如此分析,画出图来,假设一个给定值,进行解析

我认为开始学 递归
应该是多想,然后写写,试着把每步写一下,发现写了几个后,就明白是怎么运行的了,然后在考虑怎么结束 递归,也就是最后一步怎样做才可以退回,

fac(int n)
{
if (n==1) return 1; ///////这个就是最后判断退回了
n=n*fac(n-1) ///////没结束该怎么做
}

找到 递归 结束的条件 画个树形结构 找出规律 就好了

多看这放没的程序就行了....
关键要把思维放在"递"和"归"上....
是吧

太简单了