题目描述
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
/**
* 统计出兔子总数。
*
* @param monthCount 第几个月
* @return 兔子总数
*/
public static int getTotalCount(int monthCount)
{
return 0;
}
输入描述:
输入int型表示month
输出描述:
输出兔子总数int型
输入例子:
9
输出例子:
34
斐波那契数列(Fibonacci sequence),又称
黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“
兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以
递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。
本题:
第n个月的兔子数量包括上个月的数量加上满3个月的兔子新生的数量
即递推式为:f(n)=f(n-1)+f(n-2) (n>=4)
<span style="font-size:18px;">import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
while(scan.hasNext())
{
int month=scan.nextInt();
System.out.println(Sum(month));
}
}
static int Sum(int month)
{
int sum=0;
if(month==1){
sum=1;
}else if(month==2){
sum=1;
}else if(month==3){
sum=2;
}
else{
sum=Sum(month-1)+Sum(month-2);
}
return sum;
}
}</span>