不死神兔问题

有一对兔子,从出生后第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],最后输出第二十个月的兔子数量。

然后是利用递归的思想,从第二十个月往后面递归,直到兔子的数量等于确定的第一个月以及第二个月结束递归并输出语句输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值