0
点赞
收藏
分享

微信扫一扫

Java 不死神兔的解决方法

天涯学馆 2022-03-13 阅读 72
java

不死神兔用Java实现

原题:有一个很有名的数学逻辑题叫做不死神兔问题,有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月的兔子对数为多少?

有三种方法

1.数组方式

2.变量的变化方式

3.递归方式

规律

       规律:
       第一个月 1
       第二个月 1
       第三个月 2
       第四个月 3
       第五个月 5
       第六个月 7
       ...

第一个和第二个兔子对数都是1,从第三个月开始后面的兔子对数都是前面两个月兔子对数相加。

1.数组方式

  • 思路
  • 定义一个长度为20的数组:int[] arr = new int20[];

  • 第一个月和第二个月对数为1;因此索引0和1的值为1;
  • int[0] = 1;
  • int[1] = 1;
  • 从第三个月开始下月对数为这月对数之和: arr[2] = arr[0]+arr[1]                                                   
  • 可以用数组向下面这样表示
       arr[0]=1;
       arr[1]=1;
       arr[2]=arr[0]+arr[1];
       arr[3]=arr[1]+arr[2];
       ...

下面展示源代码

 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("第二十个月的兔子对数为:"+arr[19]);
    }
举报

相关推荐

0 条评论