多重梦境之递归函数
Posted Respect@
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多重梦境之递归函数相关的知识,希望对你有一定的参考价值。
定义:在函数的内部,直接或者间接的调用自己。
要点:
再定义递归函数时,一定要确定一个“结束条件”!!!
使用场合:
处理一些特别复杂的问题,难以直接解决。
但是,可以有办法把这个问题变得更简单(转换成一个更简单的问题)。
盗梦空间
设计递归函数的要点:
把问题拆解成问题本身, 但是拆解后的问题的”规模”更小, 或者难度更低.
经典实例:
1)斐波那契数列
2)汉诺塔问题
斐波那契数列
1,1, 2, 3, 5, 8, 13, 21, …
计算第n个数是多少?
f(n)
当n >2时,f(n) = f(n-1) + f(n-2)
当n=1或n=2时, f(n)就是1
f(8) = f(7) + f(6)
int fib(int n) {
int s;
if (n == 1|| n == 2) {
return 1;
}
s = fib(n-1) + fib(n-2);
return s;
}
递归函数的缺点:
性能很低!!!
实际开发中, 极少使用!
递归函数的调用过程
以上是关于多重梦境之递归函数的主要内容,如果未能解决你的问题,请参考以下文章