迷茫的小马同学


私信TA

用户名:1986054842

访问量:605

签 名:

等  级
排  名 31579
经  验 484
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

问题描述:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。
请编程实现在第n年的时候,共有多少头母牛?

解题思路:

这里列举出前九年的母牛数量:
第一年  第二年  第三年 第四年  第五年  第六年  第七年 第八年

   1           2         3          4         6            9         13       19

每头小母牛在第四年始也会生小母牛,其实就是自第二年开始出生的母牛,每过三年就会生出一头母牛
前四年,因为只有最开始的母牛会生出小母牛,所以第n年就只有n头母牛
但第五年开始,前三年的母牛也会生小母牛,由上面的规律,我们可以得出:
当n > 4时,第n年的母牛数量等于 (n-1)年 + (n-3)年的母牛数
加上(n-3)年的母牛数,是因为在3年前出生的母牛到今年也会生小母牛.


参考代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //hasNext()一直录入数据,可以手动按ctrl + d 退出(可以不用触发n=0时的return语句)
        while(sc.hasNext()){
            int n = sc.nextInt();
            if(n == 0){//当n=0时,退出循环,不做处理
                return ;
            }
            System.out.println(cowNumber(n));
        }
    }
    public static int cowNumber(int n){
        //前四年,因为只有最开始的母牛会生出小母牛,所以第n年就只有n头母牛
        if(n  4时,第n年的母牛数量等于 (n-1)年 + (n-3)年的母牛数
        return cowNumber(n-1) + cowNumber(n-3);
    }
}


 

0.0分

1 人评分

  评论区

  • «
  • »