题目描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
比如n=3时,2*3的矩形块有3种覆盖方法:

解题思路
f(1) = 1
f(2) = 2
f(3) = 3
f(4) = 5
f(5) = 8
······
f(n) = f(n-1) +f(n-2)
依旧是斐波那契数列
代码实现
public class Solution {
public int RectCover(int target) {
if(target <= 2)
return target;
int a = 1;
int b = 2;
for(int i = 3 ; i <= target ; i ++){
b = a + b;
a = b - a;
}
return b;
}
}
探讨使用2×1小矩形无重叠覆盖2×n大矩形的方法总数,发现其规律为斐波那契数列,并提供简洁高效的代码实现。
1073

被折叠的 条评论
为什么被折叠?



