经分析得出下表
这里有个很明显的特点,那就是兔子的对数是一个特殊的序列:前两项之和等于第三项
在数学上称为斐波那契数列(Fibonacci sequence)
在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
代码如下
package javase2;
import java.util.Scanner;
public class Fbi {
public static void main(String[] args) {
//斐波那契数列
//F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*
System.out.println("请输入你想知道的兔子数量的月份");
Scanner sc = new Scanner (System.in);
int n=sc.nextInt();
System.out.println("兔子的数量为"+fbi(n));
}
public static int fbi(int n) {
if (n==1||n==2) {
return 1;
}
else {
return fbi(n-1)+fbi(n-2);
}
}
}
注意: &&是“与”的意思,||是“或者
写代码的时候没注意写成了&&,可以编译,但无法执行。
报如下错误:
Exception in thread “main” java.lang.StackOverflowError
报错的信息是:栈溢出的意思。就是指对象之间相互引用,最终会导致栈溢出