HDU 2018 母牛的故事(遞推,0 ms)

2021-09-27 12:14:02 字數 975 閱讀 8626

一、題目描述

有一頭母牛,從第二年開始,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始(出生那年算第乙個年頭),每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?

輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n(0對於每個測試例項,輸出在第n年的時候母牛的數量。

每個輸出佔一行。

245

0

2

46

author

lcy二、演算法分析說明

第一年只有那一頭母牛具有生育能力。第

二、三、四年也是如此。

第 5 年,除了第一頭母牛以外,第一頭牛在第 2 年生出的小牛也可以生育了,所以這年會增加 2 頭牛,此時一共 6 頭。

第 6 年,能生育的母牛有第一頭牛以及它在第 2 、3 年生出的母牛,所以這年增加 3 頭牛,共 9 頭。

第 7 年,能生育的母牛有前 4 年出生的母牛各 1 頭,這年增加 4 頭,共 13 頭。

第 8 年,能生育的母牛有前 5 年出生的母牛,分別有 1、2、1、1、1頭,這年增加 6 頭,共 19 頭。

第 9 年,能生育的母牛有前 6 年出生的母牛,分別有 1、3、2、1、1、1 頭,這年增加 9 頭,共 28 頭。

……觀察發現,第 n 年時前 n - 3 年出生的母牛都可以生育,所以比上一年多出的牛的數量就是當年可以生育的母牛數量。設 f(n) 為第 n 年的母牛數量,於是我們有遞推式 f(n) = f(n-1) + f(n-3) ,n ≥ 4,f(1) = 1,f(2) = 2,f(3) = 3 。

三、ac **(0 ms)

#include

#pragma warning(disable:4996)

unsigned f[55]

=, n;

intmain()

return0;

}

HDU 2018母牛的故事 遞推

input 輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0 output 對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出佔一行。sample input 245 0 sample output 2 46 因為每頭小牛從第四年年初開始生產,所以從第四年開始,牛的數量要加上...

hdu 2018 母牛的故事

include main while scanf d n eof n 0 printf d n a n problem description 有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?input 輸入資料由...

hdu 2018 母牛的故事

problem description 有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?input 輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0 output 對於每個測試例項,輸出在第n年的...