黑马程序员技术交流社区

标题: 不死神兔 [打印本页]

作者: nighhr    时间: 2017-10-18 22:36
标题: 不死神兔
本帖最后由 nighhr 于 2017-10-18 22:37 编辑

public void undeadRabit() {//有一对兔子,从出生起后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问第二十个月的兔子对数为多少?
                        Scanner mon = new Scanner(System.in);
                        Scanner beg = new Scanner(System.in);
                        System.out.println("请输入兔子共生了多少个月");
                        int s = mon.nextInt();
                        System.out.println("请输入每只兔子从第几个月开始生");
                        int b = beg.nextInt();
                        int[] sum = new int; // 当年兔子可生兔子数量
                        int[] num = new int; // 每年兔子新生数量
                        num[0] = 1;                                //为num数组提供初始算术条件
                        num[1] = 1;
                        for (int month = 0; month < s; month++) {
                                // 每年兔子新生数量等于除了前两年以外的所有兔子和
                                for (int a = 0; a <= month - 2; a++) {
                                        num[month] += num[a];
                                }
                                // 从3月到17月 当年共可生兔子数量是 可生月份*当年新生数量
                                if (month > (b-2) && month < (s+1-b)) {
                                        sum[month] = (s-b - month) * (num[month]);
                                }
                        }
                        //遍历sum数组 求和 得出第3-17年的兔子共生多少兔子
                        int sun = 0;
                        for (int d = 0; d < sum.length; d++) {
                                sun += sum[d];
                        }
                        //加上第一年1只兔子和第二年1只兔子所生的18只和17只兔子
                        sun = sun + s*2-b*2+1;
                        System.out.println("在"+s+"个月中,一共生了"+sun+"只兔子(每只兔子从第"+b+"个月开始生)");
                }


作者: Oliverwqcwrw    时间: 2017-10-18 22:44
这是一个算法吧
作者: nighhr    时间: 2017-10-18 22:53
Oliverwqcwrw 发表于 2017-10-18 22:44
这是一个算法吧

嗯  做完具体题目改写的 甚至有些注释都忘了改,,
作者: fashionkillyou    时间: 2017-10-19 01:18
可以用递归算法

作者: yinman    时间: 2017-10-19 13:42
66666666666666666
作者: X_iaY_u    时间: 2017-10-19 16:12
小学奥数题用java说出来
作者: nighhr    时间: 2017-10-23 11:12
fashionkillyou 发表于 2017-10-19 01:18
可以用递归算法

现在普遍都用那种算法 我想换一种。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2