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(); } }