算法入门(二)递归算法
递归的思想是比较常见的算法设计思想,所谓递归算法就是一种直接或间接地调用原算法本身的算法,可以用几个具体的例子来理解递归的算法思想。
【例题一】计算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: }