**每天一道JavaSE基础题(一、斐波拉契数列)**
题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:(斐波拉契数列)兔子的规律为数列1,1,2,3,5,8,13,21,34…
程序代码:
public class T1 {
public static void main(String[] args) {
//数组方法
shuzhu();
//递归方法
System.out.println("请输入你要求的月数:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("用递归方法求的当前月数的兔子数为:" + digui(a)); //a代表想要求的月数
}
//数组方法
private static void shuzhu() {
int[] arr = new int[8]; //创建的数组长度代表想要求的月数
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i-2] + arr[i-1];
}
System.out.println("用数组方法求的当前月数的兔子数为:"+arr[arr.length-1]);
}
//递归方法
public static int digui(int a) { //a代表想要求的月数
if (a == 1 || a == 2) {
return 1;
}else if(a == 0){
return 0;
}else {
return digui(a-1) + digui(a-2);
}
}
}
运行结果: