古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
【问题分析】
总结发现每月兔子的规律:1,1,2,3,5,8,13,21....
从第三个月开始,每一个月对数等于前两个月对数之和:a[n]=a[n-1]+a[n-2]
而第一第二项已知,后面的值也可以求得。
import java.util.Scanner;
public class Rabbit {
private static int fun(int n) {
if(n==1||n==2) {
return 1;
}
return fun(n-1)+fun(n-2);//前两月之和等于n月对数
}
@SuppressWarnings("resource")
public static void main(String[] args) {
System.out.println("请输入一个整数查询具体哪个月有多少兔子?");
Scanner s=new Scanner(System.in);
System.out.println(fun(s.nextInt()));
}
}
网友评论