递归
递归是指,在一个函数或数据结构的定义中直接(或间接)地出现定义本身,这是一个不断深入、细化的过程。
递归的思想比较巧妙,需要自己多去思考,或者多体会别人的代码。
1)函数定义
例如:
阶乘函数,n! = n * (n-1) * ... * 1
int Fact(int n)
{
if(n == 0) return 1; /*若n等于0,阶乘等于1*/
else return n * Fact(n-1); /*否则把n-1传入Fact函数,并与n相乘*/
}
斐波拉契数列,第三个数等于前两个数之和
int Fibonacci(int n)
{
if(n == 1||n ==2) return 1; /*前两个数为1*/
else return Fib(n-1) + Fib(n-2); /*n与n的前两个数由同样的方式计算得到*/
}
2)数据结构定义