hduoj2018题

这个题目不是很难,但是我只想到了暴力解法,在看到有大神提出可以根据年龄来解之后,豁然开朗,觉得很新奇,就记录一下

 

给每一只牛赋予年龄,第一年有一只大于等于4岁的牛,第二年有一只大于等于4岁的牛+一只1岁的牛,第三年有一只大于等于4岁的牛+一只1岁的牛+一只2岁的牛,以此类推

到第五年的时候就有2只大于等于4岁的牛+两只1岁的牛+一只2岁的牛+一只3岁的牛,以此类推

代码如下:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int n = scanner.nextInt();
            if(n == 0)break;
            int age4 = 1;
            int age3 = 0;
            int age2 = 0;
            int age1 = 0;
            for (int i = 0; i < n-1; i++) {
                age4 += age3;
                age3 = age2;
                age2 = age1;
                age1 = age4;
            }
            System.out.println(age1+age2+age3+age4);
        }
        scanner.close();
    }
}

 

posted @ 2019-04-19 14:22  白诗  阅读(182)  评论(0编辑  收藏  举报