版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tfstone/article/details/89963690
问题如下:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
写出该序列 : 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…,可以发现这个数列从第3项开始,每一项都等于前两项之和,以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*);
问题由来:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”
根据递推公式,编写出求斐波那契数列的递归法:
public static void main(String[] args) {
System.out.print("请输入你想知道的兔子对数的月份:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
System.out.println("第" + n + "个月兔子总对数为" + f(n));
s.close();
}
static int f(int n) {
if (n - 1 < 2) {
return 1;
}
return f(n - 1) + f(n - 2);
}