DHU OJ | 基本練習-86 母牛的數量

86 母牛的數量

作者: xxx時間限制: 1S章節: 一維數組

問題描述 :

有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛?說明:假設在第n年及之前所有牛都不曾死亡。

 

輸入說明 :

首先輸入一個T,表示以下包含T行輸入數據(測試實例),每行包括一個整數n(0<n<55),n的含義如題目中描述。

 

輸出說明 :

對於每個測試實例,輸出在第n年的時候母牛的數量。

每個輸出佔一行,行首與行尾均無空格,最後無空行。

 

輸入範例 :

3
1
30
53
 

輸出範例 :

1
85626
563332848 
 

筆記

這是一個很經典的老題。若干年前,我初次邂逅這題時,我還不會做。

解這題需要簡單的分析:每年的總牛數=上一年的牛的頭數+新生牛的頭數,本年的生育牛的頭數等於三年前牛的頭數。

設第i年的牛的總數爲yi,則

當i = 1時,y1 = 1

當1<i<4時,yi = y(i-1) + 1

當i>=4時,yi = y(i-1) + y(i-3)

代碼

#include<stdio.h>
#include<string.h>

int main(){
	int T;
	scanf("%d",&T);
	
	int n;
	int sum;
	int cow[56];
	int i,j;
	while(T){
		scanf("%d",&n);
		cow[1] = 1;
		sum = 0;
		
		for(i=2;i<=n;i++){
			if(i<4) cow[i] = cow[i-1] + 1;
			else cow[i] = cow[i-1] + cow[i-3];
		}
		printf("%d\n",cow[n]);
		
		T--;
	}
	
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章