递归定义
递归是指某个函数直接或间接的调用自身。递归首先需要有一个递归式,这个递归式规定如何将原问题划分成子问题。递归还要包含一个递归出口,即递归终止的条件,也就是最小子问题的求解,可以允许多个出口。
一个关于递归的典型例子就是阶乘。大家知道,阶乘的定义就是:
1. n!=n*(n-1)!
2. 0!=1,1!=1
在阶乘的定义中,第一句是递归式,第二句就是递归的出口。也就是说,要求出n的阶乘,只需要求处 n-1的阶乘,然后再乘以n就是n的阶乘。而要求出n-1的阶乘,又只需要求出n-2的阶乘,再乘以n-1就是n-1的阶乘。以次类推。但是,这样推下去,必须需要一个最初的值,才能不能无限推下去,因此需要一个出口。于是,就定义0!=1,1!=1。这样,出口找到了。