杭电oj —— 2018

import java.util.Scanner;

public class HDU_oj2018 {
/*
 * 有一头母牛,它每年年初生一头小母牛。
 * 每头小母牛从第四个年头开始,每年年初也生一头小母牛。
 * 请编程实现在第n年的时候,共有多少头母牛?*/
	public static void main(String[] args) {
		Scanner sn = new Scanner(System.in);
		while(sn.hasNext()) {
			//第n年 
			int n = sn.nextInt();
			if(n != 0) {
				System.out.println(compute(n));
			}
		}
	}
	
	/*
	 * 我们可以得出这样一个公式:fn=fn-1+fn-3
           再理解一下,fn-1是前一年的牛,第n年仍然在,
       fn-3是前三年那一年的牛,但换句话说也就是第n年具有生育能力的牛,也就是第n年能生下的小牛数。
           编程序,求解这个公式就行了。
	 * 
	 */
	public static int compute(int n) {
		if(n == 1) {
			return 1;
		} else if(n == 2) {
			return 2;
		} else if(n == 3) {
			return 3;
		} 
		//我们可以得出这样一个公式:fn=fn-1+fn-3
		return compute(n-3) + compute(n-1);
	}
	
	
}

 

你可能感兴趣的:(杭电oj)