先来看一下问题
//有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…
很明显可以看出 an+2=an+an+1;
上才艺!!!
import java.util.Scanner;
public class demo3 {
public static void main(String[] args) {
//有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
// 假如兔子都不死,问每个月的兔子对数为多少?
//程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
//1+1=2 1+2=3
//每个月兔子对数为n 月数为m an+2=an+an+1
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
//根据输入的月份,来判断兔子对数
int n1=n+3;
// n1=n+3是防止数组越界
int []arr=new int[n1];
//进行初始化,给arr【0】arr【1】赋值
arr[0]=1;
arr[1]=1;
for(int i=0;i<=n;i++)
{
//带入之前得到的规律
arr[i+2]=arr[i]+arr[i+1];
arr[n]=arr[i];
}
System.out.println("第"+n+"个月有"+arr[n+1]+"对");
}
}
好啦,这就结束啦 如果有什么问题,欢迎大家交流