import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ System.out.println(solution(scanner.nextInt())); } } private static int solution(int month) { // 第一个月初始化 // 一月龄兔子总数 int oneMonth = 1; // 二月龄兔子总数 int twoMonth = 0; // 三月龄及以上兔子总数 int threeMonth = 0; // 下个月将繁殖的兔子数量 int addVal = 0; // 第二个月开始递推, i表示第i个月 for(int i = 2; i <= month; i++) { // 三月龄及以上兔子总数 = 二月龄兔子总数 + 原本三月龄及以上兔子总数 threeMonth += twoMonth; // 二月龄兔子总数 = 上个月的一月龄兔子总数 twoMonth = oneMonth; // 一月龄(即这个月出生)兔子总数 = 上个月将繁殖的兔子数量 oneMonth = addVal; // 下个月将出生的兔子 = 下个月成为三月龄及以上的兔子数量 addVal = twoMonth + threeMonth; } return (oneMonth + twoMonth + threeMonth); } }
点赞

相关推荐

阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务