java基础进阶-无敌神兔,发财致富2年上百万!

无敌神兔问题
描述:
在理想状态下,一对兔子喂养到第三个月开始,每个月就会产下一对兔子。
农夫从第一个月开始喂养1对,那么到第n个月的时候,兔子有多少对?
当然,我们的理想状态下是兔子不死,并且从喂养的第3个月开始都能生。
要求:
输入一个数n,输出第n个月的兔子对数。

思路:
我们先枚举法列出每个月兔子的情况:
1,1,2,3,5,8,13,21…
因为兔子喂养到第3个月的时候是可以生新兔子的,所以我们可以得出:
第一:当前月份的兔子数并不是上个月的2倍,因为上个月新增的兔子是不能生的。
第二:上个月兔子的新增数=上个月的兔子数-上上个月的兔子数 a[n-1]新增 = a[n-1]-a[n-2];(n>2)
第三:当前月份的兔子数=2倍上个月的兔子数-上个月兔子的新增数 a[n] = 2[n-1]-a[n-1]新增 = a[n-1]+a[n-2]
也就可以得出规律,当前月份的兔子数=上个月+上上个月

上代码…

import java.util.Scanner;
public class GodRabbit {
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        //接收对象
        System.out.println("发财致富在这里,老板,你想知道第几个月的兔子对数?");
        int n = sc.nextInt();
        //定义变量,记录一下当前的兔子总对数
        int sum = 0;
        //开辟对应数组内存空间,用来记录某个月的兔子对数
        int[] rabbbitArr = new int[n];
        //初始化前两个月的兔子对数
        sum=rabbbitArr[0]=rabbbitArr[1]=1;
        //进入循环赋值
        for(int i = 2;i<n;i++){
            rabbbitArr[i]=rabbbitArr[i-1]+rabbbitArr[i-2];
            sum=rabbbitArr[i];
        }
        //输出结果
        System.out.println("老板,第"+n+"个月的时候您就有 "+sum+" 对兔子了!");
        System.out.println("我们算一算,就算一对兔子20块,我们花费20块成本买一对兔子养,那"+sum+"对兔子就是"+20*sum+"块!!");
        System.out.println("发财致富经啊,2年变百万富翁,让我们一起来养兔子吧!!");
    }
}

在这里插入图片描述扯淡问题:
如果一对兔子要第4个月才能生下一对兔子,并且一对兔子的生命周期只有12个月,即到了第12个月的时候就会死去,那么要想变为百万大款,我们需要养多少个月的兔子?

发布了18 篇原创文章 · 获赞 16 · 访问量 388

猜你喜欢

转载自blog.csdn.net/lierenbiji21/article/details/105359364