波纳契是欧洲中世纪的数学家,生于意大利的比萨。1202年,菲波纳契在他的著作《算盘书》中提出了一个有趣的兔子问题。
“假定一对刚出生的小兔一个月后就能长成大兔。再过一个月后便能生下一对小兔,并且此后每个月都生一对小兔,而且小兔子的生育能力也同他们的父母一样。如果一年内没有发生死亡,那么,由一对刚出生的兔子开始,12个月后会有多少对兔子呢?”
因为小兔子从出生到能够生育需要两个月的时间,所以从第3个月开始才会有小兔子出生。此后,每个月的兔子由两部分组成,一部分是上个月就有的兔子,另一部分是新出生的兔子。前者的对数无疑等于上个月的兔子对数,后者的对数应该等于两个月前兔子的对数,这是因为那时的老兔子这个月仍然继续生育,而那时的小兔子这个月已经开始生育了。
方法一:
public class Demo
/**数组实现雯波纳契黄金分割数列*归递
*/
{
public static void main(String[]args)
{
System.out.println(Fbi(24));
}
public static int Fbi(int i)
{
if(i<2)return i==0?0:1;
return Fbi(i-1)+Fbi(i-2);
}
}
方法二:迭送
public class Demo1
{
public static void main(String args[]) {
int R[] = new int[12]; //每月的兔子数
R[0] = 1; //第一月份的兔子数
R[1] = 1; //第二月份的兔子书
for (int a = 2 ; a < 12; a++) {
R[a] = R[a-1] + R[a-2];
System.out.println(R[a]);
}
}
}
方法三:
import java.util.Scanner;
public class Wbnq
{
public static void main(String args [] )
{
int n,fn;//n为第n项,fn为n的第n项的值
java.util.Scanner sc = new Scanner(System.in);
n=sc.nextInt();
fn=function(n);
System.out.println("雯波纳契数列第"+n+"项为:"+fn);
}
public static int function(int n)
{
if(n==1||n==2)return 1;
return function(n-1)+function(n-2);
}
}