题目:
/**
* 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
* 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个
* 月的兔子总数为多少?
*
*/
解析:
/**
* 1.这是一个斐波那契数列,第三个数等于前两个数之和
* 2.定义变量,第一个数,第二个数,第三个数,都会随着月数的变化而变化
* 总而言之就是动态的
* 第一,第二,第三都是相对的
*/
public class Programmer1 {
public static void main(String[] args) {
/**
* 1.这是一个斐波那契数列,第三个数等于前两个数之和
* 2.定义变量,第一个数,第二个数,第三个数,都会随着月数的变化而变化
* 总而言之就是动态的
* 第一,第二,第三都是相对的
*/
int first = 1;
int second = 1;
int third ;
for(int month=1;month<25;month++){
if(month>2){
third = first +second;
first = second;
second =third;
System.out.println("第"+month+"个月有"+third+"对兔子");
}else{
System.out.println("第"+month+"个月有"+first+"对兔子");
}
}
System.out.println("-------------------------用数组实现---------------------");
/**
* 用数组实现菲波那切数列数列
* 1.定义一个数组来存储兔子的对数
* 2.第一,第二个数赋值为1
*
*/
int[] arr = new int[24];
arr[0]=1;
arr[1]=1;
for(int i=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
System.out.println("第"+(i+1)+"个月有"+arr[i]+"对兔子");
}
}
}
结果:
第1个月有1对兔子
第2个月有1对兔子
第3个月有2对兔子
第4个月有3对兔子
第5个月有5对兔子
第6个月有8对兔子
第7个月有13对兔子
第8个月有21对兔子
第9个月有34对兔子
第10个月有55对兔子
第11个月有89对兔子
第12个月有144对兔子
第13个月有233对兔子
第14个月有377对兔子