递归(recursion):程序调用自身的编程技巧. 递归满足2个条件: 1)有重复运行的过程(调用自身) 2)有跳出重复运行过程的条件(递归出口) 一.阶乘: #include <iostream> using namespace std; int recursive(int i) { int sum = 0; if (0 == i) return (1); else sum = i * recursive(i-1); return sum; } int main() { int n,ans
如果我们需要重复多次计算相同的问题,通常可以选择递归或者循环 递归的好处是代码简洁 但是递归也有明显的缺点: 递归是由于函数调用自身,而函数调用是需要有时间和空间的消耗的.每一函数调用,都需要在内存栈中分配空间以保存参数,返回地址和临时变量,而且往栈中压入数据和弹出数据都需要时间. 递归中有可能很多计算都是重复的.递归的本质是把一个大问题分解成小问题,但是多个小问题之间会有重叠的部分 递归可能会引发问题:调用栈溢出. 斐波拉契数列 public class Exam9_Fibonacci { p