lucasfeng 迭代的是人,递归的是神
lucasfeng
迭代的是人,递归的是神(一)
把递归调用展开,是分析递归调用的利器!
一、递归调用的一般结构。
递归函数一般有如下特征:
recursionFun()
{
//第一部分:递归结束条件,前期处理。
if 递归结束条件
return;
//第二部分:递归调用。
recusionFun();
//第三部分:递归调用后期处理,也可能有return语句。
}
二、递归调用的4种形式。
下面看递归调用的4种形式:
1、
void recursionFun( int n) { if (n == 0) { return ; } cout << n; recursionFun(n - 1); }
recursionFun(3)输出321.
2、
void recursionFun( int n) { if (n == 0) { return ; } recursionFun(n - 1);
cout << n;
}
recursionFun(3)输出123.
3、
void recursionFun( int n) { if (n == 0) { return ; } cout << n; recursionFun(n - 1); cout << n; }
recursionFun(3)输出321123.
4、
int recursionFun( int n) { if (n == 1) { return 1; } int sum = 0; sum = n + recursion(n - 1); return sum; }
recursionFun(3)输出6.
二、第1种形式的分析。
这里为了简便以recursionFun(2)为例。
void recursionFun( int n) { if (n == 0) { return ; } cout << n; recursionFun(n - 1); }
记住,把递归调用展开分析!如下图。
三、第2种形式的分析。
void recursionFun( int n) { if (n == 0) { return ; } recursionFun(n - 1); cout << n; }
四、第3种形式的分析。
void recursionFun( int n) { if (n == 0) { return ; } cout << n; recursionFun(n - 1); cout << n; }
五、第4种形式的分析。
int recursionFun( int n) { if (n == 1) { return 1; } int sum = 0; sum = n + recursion(n - 1); return sum; }
分类: C语言
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于lucasfeng 迭代的是人,递归的是神的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did45553