兔子繁殖问题 (java)
已知有一对兔子,每个月可以生一对兔子,而小兔子一个月后又可以生一对小兔子(比如:2月份出生的小兔子4月份可以生育)。也就是说,兔子的对数为:第一个月1对,第二个月2对,第三个月3对,第四个月5对…假设兔子的生育期为两年,且不死。那么问题来了,你能说出每个月的兔子数么?
输入格式:
输入一个数n,表示第n个月,1<=n<=24。
输出格式:
输出这个月兔子的数目。
输入样例:
4
输出样例:
5
代码演示:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[24];//老兔子
int[] b = new int[24];//小兔子
int sum = 0,i;
a[0]=1;
for(i=0;i<n;i++)
{
if(i==0)// 第一个月时
{
sum = b[i]+a[i];
}
else if(i==1)//第二个月时
{
b[i]=a[i-1];
a[i]=a[i-1];
sum = b[i]+a[i];
//
}
else //第二个月以后时
{
b[i]=a[i-1];
a[i]=b[i-1]+a[i-1];
sum = b[i]+a[i];
}
}
System.out.println(sum);
}
}