算法入门(二)递归算法

递归的思想是比较常见的算法设计思想,所谓递归算法就是一种直接或间接地调用原算法本身的算法,可以用几个具体的例子来理解递归的算法思想。

【例题一】计算n的阶乘n!

程序分析  当n=0时,n!=0;当n>0时,n!=n(n-1)

所以不难得出该方法为:

  int digui(int n)  
 { 
  if(n==0) return 1;   
 else return n*digui(n-1)  
  }
【例题二】古典问题,有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第四个月后每个月又生一只兔子,加入兔子不死,问第十个月后兔子的总数是多少?
程序分析:兔子的规律为数列1,1,2,3,5,8........
程序源码:
   1:  public class rubbet
   2:  {
   3:      public static void main(String[] args)
   4:      {
   5:          for(int i=1;i<10;i++)
   6:              
   7:                  System.out.println("第"+i+"个月生产出的兔子数是"+f(i));
   8:      }
   9:      public static int f(int i) 
  10:      {
  11:              if(i==1||i==2)
  12:              {
  13:                  return i=1;
  14:              }
  15:              else
  16:              {
  17:                  return f(i-1)+f(i-2);
  18:              }
  19:      }
  20:  }
posted @ 2012-05-07 20:54  寻梦启示  阅读(454)  评论(0编辑  收藏  举报