hduoj2018题

Posted cykfory

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
    }
}

 

以上是关于hduoj2018题的主要内容,如果未能解决你的问题,请参考以下文章

HDUOJ基础题HDU1001

HDUOJ1257 最少拦截系统

hduoj题目分类

hduoj 1002 A + B Problem II

HDUOJ A Mathematical Curiosity 1017

HDUOJ A Mathematical Curiosity 1017