有一对兔子,从出生后第3个月起每月都生一对兔子,小兔子长到第三个月后每月又生一对兔子,假如兔子都不死,每个月有多少对兔子,一年共有多少对兔子?
意大利的著名数学家斐波那契提出该问题,后人把各个月份兔子数量称为“斐波那契数列”。
1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月,10月,11月,12月…………
1对, 1对, 2对, 3对, 5对, 8对, 13对, 21对,34对,55对,89对,144对…………
关于这道题我有两种解法,下面附上代码和我的思路
public class NotdieRabbit { public static void main(String[] args) {
int digui = digui(20);
System.out.println(digui);
// int[] arr=new int[20];
// fc(arr);
// }
// public static void fc(int arr[]){
// arr[0]=1;
// arr[1]=1;
// for(int j=2;j<20;j++){
// arr[j]=arr[j-1]+arr[j-2];
// }
// System.out.print(arr[19]);
// }
}public static int digui (int a){
if (a==1||a==2)
{ return 1; }
return digui(a-1)+digui(a-2); }
}
首先是for循环运用数组做出,把兔子的数量储存在数组里面,第一个月和第二个月都是一对,从第三个月开始每月兔子数量是上两个月之和,循环条件arr[j-1]+arr[j-2]=arr[j],最后输出第二十个月的兔子数量。
然后是利用递归的思想,从第二十个月往后面递归,直到兔子的数量等于确定的第一个月以及第二个月结束递归并输出语句输出结果。