不死神兔(Java实现)
规则(
A:从第三项开始,每一项都是前面两项之和
B:而且说明前面的两项是已知的
C:数组实现:
D:变量的变化实现
)
实现代码如下(以20个月为例,三种方法实现):
public class ResursionDemo2 {
public static void main(String[] args) {
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for(int i = 2;i < arr.length;i++) {
arr[i] = arr[i-1] + arr[i-2];
}
System.out.println("第20个月不死神兔的个数是:"+arr[19]);
System.out.println("----");
int a = 1;
int b = 1;
for(int x = 0;x < 18;x++) {
int temp = a;
a = b;
b = temp + b;
}
System.out.println("第20个月不死神兔的个数是:"+b);
System.out.println("-----");
System.out.println("第20个月不死神兔的个数是:"+Resorsion(20));
}
public static int Resorsion(int n) {
if(n==1||n==2) {
return 1;
}else {
return Resorsion(n-1) + Resorsion(n-2);
}
}
}