题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

import java.util.Scanner;

public class Main {

    //today--->当前月份;born--->出生月份;month--->养兔时间
    public static int produce(int born, int today, int month) {

        if (today <= month) {
            if (today - born >= 2) {
                //当前月份-出生月份 >= 2 ---->产一个崽,母兔+子兔+产下的一个崽
                return 1 + produce(born, today + 1, month)
                        + produce(today, today, month);
            } else
                //当前月份-出生月份 < 2 ---->不产崽
                return produce(born, today + 1, month);
        }
        return 0;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int month = in.nextInt();
            //总的产崽数+最开始的基数兔(即兔子初始为1个)
            int sum = produce(1, 1, month) + 1;
            System.out.println(sum);
        }
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务