問題:
原有地板鋪有 nxm 塊正方形瓷磚老化了需要更新,但商店已經沒有此類瓷磚了,只**長方形的瓷磚,分析如何用 1x2 的瓷磚去覆蓋 nxm 的地板呢?
分析:
1.n=1,m為偶數時,需要m/2塊瓷磚
2.若nxm為奇數,則肯定不能用1x2的瓷磚去全部覆蓋它。
(例如3x3只能放4塊,3x5只能放7塊,都剩餘乙個不能覆蓋)
3.n與m中至少有乙個為偶數,需要nx(m/2)塊瓷磚(這裡假設m為偶數)
擴充套件問題:
1.求用1x2的瓷磚覆蓋2xm的地板有幾種方式?(設f(m)函式的返回值為擺放的種數)
1 bb2
b b
第一塊瓷磚就只有橫或豎兩種方式放置。
當以方式1,接下相當於要計算f(m-1).
當以方式2,接下來相當於要計算f(m-2).
可以得出遞推式f(m)=f(m-1)+f(m-2),其中f(1)=1,f(2)=2。(m>2)
2.用1x2的瓷磚覆蓋8x8的地板有多少種方式?如果是nxm呢?
①若地板只有1行,只有一種排法,就是全部橫著排
②若地板有2行,即為擴充套件問題1
③大於3行,參考:
3.用p x q的瓷磚能夠覆蓋n x m的地板嗎?
①nxm可以被p x q整除,即地板是瓷磚所佔面積的整數倍。
②n或m可以被p整除 && n或m可以被q整除。
瓷磚覆蓋地板問題
問題一 某年夏天,位於希格瑪大廈四層的微軟亞洲研究院對辦公樓的天井進行了一次大 規模的裝修.原來的地板鋪有 n m 塊正方形瓷磚,這些瓷磚都已經破損老化了,需要予以 更新.裝修工人們在前往商店選購新的瓷磚時,發現商店目前只 長方形的瓷磚,現在的 一塊長方形瓷磚相當於原來的兩塊正方形瓷磚,工人們拿不定...
程式設計之美 第四章 數字之趣 4 2瓷磚覆蓋地板
瓷磚覆蓋地板 原來的地板鋪有n m塊正方形瓷磚,商店只提供長方形瓷磚,現在一塊長方形瓷磚相當於於原來的兩塊正方形瓷磚,能否用1 2的瓷磚去覆蓋n m的地板呢 本質 斐波那契遞推數列公式 f i f i 1 f i 2 分析 n m的地板有以下幾種可能 1如果n 1,m為偶數的話,顯然1 2的瓷磚可以...
2015程式設計之美 骨牌覆蓋問題 二 快速冪
描述 上一周我們研究了2xn的骨牌問題,這一周我們不妨加大一下難度,研究一下3xn的骨牌問題?所以我們的題目是 對於3xn的棋盤,使用1x2的骨牌去覆蓋一共有多少種不同的覆蓋方法呢?首先我們可以肯定,奇數長度一定是沒有辦法覆蓋的 對於偶數長度,比如2,4,我們有下面幾種覆蓋方式 輸入第1行 1個整數...