華為練習題 長壽的兔子

2022-04-08 06:05:20 字數 793 閱讀 3691

從前有一對長壽的兔子,他們每個月生出一對小兔子,第乙個月新生產的兔子兩個月就長大了,在第三個月初開始生他們的下一代小兔子,這樣一代一代的生下去,不考慮兔子的壽命,求第n個月出生多少對小兔子

簡單示例:

比如輸入1,第乙個月出生的兔子只有一對,所以輸出為1

比如輸入2,第二個月出生的兔子只有一對,所以輸出為1

比如輸出為3,則該月份有兩對兔子出生,則輸出為2

要求:實現以下介面:

輸入乙個正整數,表示第幾個月,輸出該月份生產出的小兔子的對數

呼叫者會保證:

輸入的月份與生產的兔子數目都為unsigned int 能表達的數字

非遞迴:將兔子分為大中小3類(大兔子:可以產小兔子,中兔子:成長1個月的小兔子,下個月會變成大兔子),每個月的大兔子數量為上個月的大兔子數量加上中兔子數量,中兔子數量為上個月小兔子數量,小兔子數量為上個月大兔子數量。

遞迴:某月出生的兔子數量等於大兔子數量,大兔子數量等於上個月的大兔子數量加上中兔子數量,而上個月的中兔子數量等於上上個月的小兔子數量,等於上上上個月的大兔子數量,於是得到遞推式:

f(n) = f(n-1) + f(n-3) (n>=3)

#include

using namespace std;

unsigned rabbit(unsigned n)

return big;

}int main()

#include

using namespace std;

unsigned rabbit(unsigned n)

int main()

華為練習題 刪除重複字元

詳細描述 原型 int getresult const char input,char output 輸入引數 input 輸入的字串 輸出引數 指標指向的記憶體區域保證有效 output 輸出的字串 返回值 0 成功 1 失敗及異常 舉例 輸入 abadc bad,那麼該單詞中紅色部分的字元在前面...

華為練習題 合唱隊

計算最少出列多少位同學,使得剩下的同學排成合唱隊形 說明 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2 k,他們的身高分別為t1,t2,tk,則他們的身高滿足存在i 1 i k 使得t1 tk。你...

華為機試練習題1

題目描述 有這樣一道智力題 某商店規定 三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?答案是5瓶,方法如下 先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一瓶汽水,喝掉這瓶滿的,喝完以...