題目:
在2×n的乙個長方形方格中,用乙個2× 1的骨牌鋪滿方格,
例如n=3時,為2× 3方格,骨牌的鋪放方案有三種(如圖)。求
輸入n,輸出鋪放方案的總數
分析:可以把2× 1的骨牌看成乙個整體,可以豎著放,也可以橫著放。
2× n
的骨牌的填充:
(1)可以由2×(n-1)的骨牌最後加上一張豎2× 1的骨牌,此時的填充方法有f(n-1)種。
(2)還可以由2×(n-2)的骨牌最後加上2張橫著的2× 1的骨牌,此時的填充方法有f(n-2)種。
(3)還有一種情況是由2× (n-2)的骨牌最後加上2張豎著的2×1的骨牌,但這已經包括在(1)中,所以不用再加一遍了。
最後總的填充方法有:f(n)=f(n-1)+f(n-2)。
這是斐波那契數列(1,1,2,3,5,8,13,21,34.....)
**:
#includevoid main()
printf("共有 %d 種填法\n",a[n]);
//斐波那契數列1,2,3,5,8,13,21,34,55,89,144...
}
遞推演算法二
b align center size medium 遞推演算法二 冪積數列 size align b size medium b 冪積數列 b m 輸入整數n,m求小於n的按從小到大的第m個元素 分析 list b 窮盡法 b 從2開始到n,如果n 2 0,n n 2一直迴圈的直到不能除盡 n 3...
遞推演算法(初學)
遞推演算法 乙個問題的求解需一系列 類似重複 的計算,在已知條件和所求問題之間總存在著某種相互聯絡的關係。通過已知條件,利用特定關係得出中間推論,直至得到結果的演算法。在解決問題的時候,去尋找前後過程之間的數學關係 即遞推式 遞推演算法避開了求項公式的麻煩,把乙個複雜的問題的求解,分解成了連續的若干...
遞推演算法(2)
有 2n 的乙個長方形方格,用乙個12 的骨牌鋪滿方格 編寫乙個程式,試對給出的任意乙個n n 0 輸出鋪法總數。演算法分析 1 當n 1時,只能是一種鋪法,鋪法總數有示為x1 1。2 當n 2時 骨牌可以兩個並列豎排,也可以並列橫排,再無其他方法,如下左圖所示,因此,鋪法總數表示為x2 2 3 當...