有 2n 的乙個長方形方格,用乙個12 的骨牌鋪滿方格。
編寫乙個程式,試對給出的任意乙個n(n>0), 輸出鋪法總數。
【演算法分析】
(1)當n=1時,
只能是一種鋪法,鋪法總數有示為x1=1。
(2)當n=2時:
骨牌可以兩個並列豎排,也可以並列橫排,再無其他方法,如下左圖所示,因此,鋪法總數表示為x2=2;
5)推出一般規律:對一般的n,要求xn可以這樣來考慮,
若第乙個骨牌是豎排列放置,
剩下有n-1個骨牌需要排列,這時排列方法數為xn-1;
若第乙個骨牌是橫排列,
整個方格至少有2個骨牌是橫排列(1*2骨牌),因此剩下n-2個骨牌需要排列,這是骨牌排列方法數為xn-2。
從第一骨牌排列方法考慮,只有這兩種可能,所以有:
f(n)=f(n-1)+f(n-2) (n>2)
f(1)=1
f(2)=2
#includeusing namespace std;
int main()
}
骨牌鋪方格
time limit 1 sec memory limit 128 mb submit 43 solved 12 submit status web board 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下...
骨牌鋪方格
problem description 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 input 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0 n 50 outpu...
骨牌鋪方格
problem description 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下圖 輸入資料由多行組成,每行包含乙個整數n,表示該測試例項的長方形方格的規格是2 n 0 n 50 output 對於每個...