Alan's Blog

导航

递归

今天写了两个比较简单的程序,递归的实现,一个是实现5的阶乘。程序如下
Code
  其实很好理解。5的阶乘其实就是5!=5*4*3*2*1;可以描述成这样表示方法recursive(int n)=n*recursive(n-1)。当n等于5的话,那recursive(5)=5*recursive(4)。根据上面那个公式不就推出recursive(4)=4*recursive(3),以此类推recursive(2)=2*recursive(1),即:recursive(5)=5*4*3*2*recursive(1),那只要我们设当n等1(即recursive(1))等于1时,我们就求出recursive(5)即:5!了。

下面用非递归的方式求阶乘,代码如下,很简单,相信大家都能够很容易看得懂
Code



再来一个程序:求Fibonacci数列1、1、2、3、5、8……这样的程序,代码如下,我就不多解释
Code
方法:当i>2时,fibonacii(i)=fibonacii(i-1)+fibonacii(i-2)

非递归方式代码:
Code
大家可以验证一下

posted on 2009-10-16 01:19  Alan's Blog  阅读(236)  评论(0编辑  收藏  举报