演算法訓練 瓷磚擺放

2021-10-02 10:37:37 字數 654 閱讀 5523

問題描述

有一長度為n(1<=n<=10)的地板,給定兩種不同瓷磚:一種長度為1,另一種長度為2,數目不限。

要將這個長度為n的地板鋪滿,一共有多少種不同的鋪法?

例如,長度為4的地面一共有如下5種鋪法:

4=1+1+1+1

4=2+1+1

4=1+2+1

4=1+1+2

4=2+2

程式設計用遞迴的方法求解上述問題。

輸入格式

只有乙個數n,代表地板的長度

輸出格式

輸出乙個數,代表所有不同的瓷磚鋪放方法的總數

樣例輸入

4樣例輸出

5思路:爬樓梯 遞迴演算法

n=1,只有一種鋪法,用長度為1的瓷磚鋪一下。

n=2,兩種鋪法,①用兩塊長度為1的瓷磚鋪一下②用一塊長度為2的瓷磚鋪一下

n>2,可以這麼想,只考慮鋪到最後將要鋪滿時候,差兩塊就是n=2的鋪法,差一塊就是n=1的鋪法,所以要鋪完n>2塊瓷磚,只需要遞迴n=1,n=2兩種情況即可!

#include

using

namespace std;

intrecursion

(int n)

intmain()

歡迎批評指正!

演算法訓練 瓷磚鋪放

問題描述 有一長度為n 1 10 的地板,給定兩種不同瓷磚 一種長度為1,另一種長度為2,數目不限。要將這個長度為n的地板鋪滿,一共有多少種不同的鋪法?例如,長度為4的地面一共有如下5種鋪法 4 1 1 1 1 4 2 1 1 4 1 2 1 4 1 1 2 4 2 2 程式設計用遞迴的方法求解上述...

演算法訓練 瓷磚鋪放

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 有一長度為n 1 10 的地板,給定兩種不同瓷磚 一種長度為1,另一種長度為2,數目不限。要將這個長度為n的地板鋪滿,一共有多少種不同的鋪法?例如,長度為4的地面一共有如下5種鋪法 4 1 1 1 1 4 2 1 1 4 1 2 1...

演算法訓練 瓷磚鋪放 遞迴

演算法訓練 瓷磚鋪放 遞迴 時間限制 1.0s 記憶體限制 512.0mb 問題描述 有一長度為n 1 10 的地板,給定兩種不同瓷磚 一種長度為1,另一種長度為2,數目不限。要將這個長度為n的地板鋪滿,一共有多少種不同的鋪法?例如,長度為4的地面一共有如下5種鋪法 4 1 1 1 1 4 2 1 ...