题目:古典问题,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....,即斐波那契数列。斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
代码:
import java.util.Scanner;
class GetRabbitNumber{
private int month;
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public GetRabbitNumber(int month){
this.month=month;
}
public void getRabbitNumber(){
int temp = 0;
int f1 = 1;
int f2=1;
//---------------------->
for (int i = 3; i <=this.month; i++) {
if (this.month == 1 || this.month == 2) {
f2 = 1;
} else {
temp = f2;
f2 = f1 + f2;
f1 = temp;
}
//------------------------>
}
System.out.println("兔子的数量:" + f2);
}
}
public class 可爱的小兔兔 {
public static void main(String[] args) {
System.out.print("请输入月份:");
Scanner sc=new Scanner(System.in);
int month=sc.nextInt();
GetRabbitNumber grn=new GetRabbitNumber(month);
grn.getRabbitNumber();
}
}
测试结果: