手把手教你c++函数递归
1、鼠标双击或者右击打开桌面上DEVc++软件,让其运行起来。Dev-C++是一个电脑Windows窗口运行环境下的一款非常适合于刚开始学习c++学者使用的入门级C/C++ 集成开发环境(IDE)。这款软件很自由,遵守GPL许可协议分发源代码。它大大集成了MinGW中的GCC编译器、GDB调试器和 AStyle格式整理器等众多自由软件。非常的试用,而且界面分类清楚,具有很强大的功能。

3、 什么是递归? 递归是指某个函数直接或间接的调用自身。问题的求解过程就 是划分成许多相同性质的子问题的求解,而小问题的求解过程 可以很容易的求出,这些子问题的解就构成里原问题的鞅瓞慈玢解。 总体思想: 将待求解问题的解看作输入变量x的函数f(x) 通过寻找函数g,使得f(x) = g(f(x-1)) 并且已知f(0)的值,就可以通过f(0)和g求出f(x)的值. 这样一个思想也可以推广到多个输入变量x,y,z等,x-1 也可以推广到 x - x1,只要递归朝着出口的方向走就可以 了.

5、常见的利用递归思想例题:例:菲波那契数列输入一个整数n,求菲波那契数列的第n项. 算法:设第n项值为f(n),则f(n) = f(n-1)+f(n-2).已知f(1)=1,f(2)=1,则从第 3项开始,可以用公式求.程序:int f(int n){if(n==1 || n==2) return 1;else return f(n-1)+f(n-2);}

7、程序int f(int m, int n){if(n==1 || m==0) return 1; if(n>m) return f(m,m); return f(m,n-1)+f(m-n,n);} 出口条件说明: 当n=1时,所有苹果都必须放在一个盘子里,所以返回1; 当没有苹果可放时,定义为1种放法; 递归的两条路,第一条n会逐渐减少,终会到达出口n==1; 第二条m会逐渐减少,因为n>m时,我们会return f(m,m)到达出口m==0.
