古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
a、除第一项和第二项之外,任意一项是前面两项之和。
b、第一项和第二项的值是首先给定的。
数学表达式就是:
F(n) = F(n-1) + F(n-2)
F(1) = 1
F(2) = 1
1 public class Rabbit { 2 public static void main(String[] args) { 3 int n = 8; 4 System.out.println("第"+n+"个月一共有"+fun(n)+"只兔子!"); 5 } 6 private static int fun(int n){ 7 if(n==1|| n==2){ 8 return 1; 9 } 10 else{ 11 return fun(n-1)+fun(n-2); 12 } 13 } 14 }