古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
分析:
第一个月:1对兔子(T1)
第二个月:1对兔子(T1)
第三个月:2对兔子(T1、T1生小兔子T2)
第四个月:3对兔子(T1、T2、T1生小兔子T3)
第五个月:5对兔子(T1、T2、T3、T1生小兔子T4、T2生小兔子T5)
第六个月:8对兔子(T1、T2、T3、T4、T5、T1生小兔子T6、T2生小兔子T7、T3生小兔子T8)
……
以此类推。
兔子数量规律:1,1,2,3,5,8,……
斐波那契数列!
代码:
import java.util.Scanner;
/**
* 斐波那契数列
* @author cheng
*
*/
public class One {
public int Fibonacci(int month){
if(month==1||month==2)
return 1;
else
return Fibonacci(month-1)+Fibonacci(month-2);
}
public static void main(String[] args){
One one=new One();
System.out.println("你想知道第几个月的兔子数量?");
Scanner inScanner=new Scanner(System.in);
int month=inScanner.nextInt();
int num=one.Fibonacci(month);
System.out.println("第"+month+"个月兔子的数量是:"+num);
inScanner.close();
}
}
输出结果:
你想知道第几个月的兔子数量?
6
第6个月兔子的数量是:8