演算法筆記練習 4 3 遞迴 問題 A 吃糖果

2021-10-04 12:08:02 字數 782 閱讀 2719

演算法筆記練習 題解合集

題目鏈結

題目描述

名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名(盒內共有 n 塊巧克力,20 > n >0)。

媽媽告訴名名每天可以吃一塊或者兩塊巧克力。

假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。

例如:如果n=1,則名名第1天就吃掉它,共有1種方案;

如果n=2,則名名可以第1天吃1塊,第2天吃1塊,也可以第1天吃2塊,共有2種方案;

如果n=3,則名名第1天可以吃1塊,剩2塊,也可以第1天吃2塊剩1塊,所以名名共有2+1=3種方案;

如果n=4,則名名可以第1天吃1塊,剩3塊,也可以第1天吃2塊,剩2塊,共有3+2=5種方案。

現在給定n,請你寫程式求出名名吃巧克力的方案數目。

輸入輸入只有1行,即整數n。

輸出可能有多組測試資料,對於每組資料,

輸出只有1行,即名名吃巧克力的方案數。

樣例輸入12

4樣例輸出12

5要解決問題是:n 塊巧克力有幾種吃法?

把問題拆分成兩個子問題:

於是得到遞迴邊界和遞迴呼叫,詳見**

#include

// countplans 輸入巧克力數量,返回方案數量

intcountplans

(int n)

;int

main()

intcountplans

(int n)

演算法筆記4 3遞迴 問題 A 吃糖果

問題 a 吃糖果 題目描述 名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名 盒內共有 n 塊巧克力,20 n 0 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。例如 如果n 1,則名名第1天就吃掉它,共有1種方案 如果n 2,則...

《演算法筆記》4 3遞迴

一.分治 分治是一種思想,可以用遞迴的方法實現,也可以用非遞迴的方法實現 二.遞迴 自底向上 三.題目 1.全排列 方法一 include using namespace std int n p 11 void generatep int index else if t 0 int main 方法二...

演算法筆記 4 3 遞迴

三.回溯 2.字母全排列 3.數樓梯 總時間限制 1000ms 記憶體限制 65536kb 描述逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 3的逆波蘭表示法為 2 3。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如 2 3 4的逆波蘭表示法為 2...