題目:有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛?
輸入數據由多個測試實例組成,每個測試實例占一行,包括一個整數n(0<n<55),n的含義如題目中描述。
n=0表示輸入數據的結束,不做處理。
對於每個測試實例,輸出在第n年的時候母牛的數量。
每個輸出占一行。
2 4 5 0
2 4 6
奶牛的數量與年份的關系如下表
| 年份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 數量 | 1 | 2 | 3 | 4 | 6 | 9 | 13 |
到第五年由於第二年生成的一頭小奶牛開始生產所以有6頭奶牛,到第6年第二年小奶牛在生產一頭奶牛,第三年的兩頭小奶牛生產2頭小奶牛所以一共有9頭奶牛,因此由表格可以看出從第五年開始奶牛的數量開始有規律,F(n) = F(n-1)+F(n-3), 即當年奶牛數量為前一年奶牛數量加上前三年奶牛數量。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n;
while((n=in.nextInt())!=0){
if(n>=1&&n<=4)
System.out.println(n);
else if(n>4){
System.out.println(Fun(n));
}
}
}
public static int Fun(int m){
if(m==1)
return 1;
else if(m==2)
return 2;
else if(m==3)
return 3;
else if(m==4)
return 4;
else
return Fun(m-1)+Fun(m-3);
}
}
