首先给我想到的是递归的思想:
然后就是找规律
f(0) = 0 ; f(1) = 1; f(2) = 2; f(3) = 3;刚好f(3) = f(1)+f(2);大胆猜测了一波f(n)= f(n-1)+f(n-2); 啊哈哈猜对了
class Solution {
public:
int rectCover(int number) {
if(number == 0)
return 0;
else if(number == 1)
return 1;
else if(number == 2)
return 2;
else if(number == 3)
return 3;
else
return (rectCover(number -1)+rectCover(number -2));
}
};
斐波那契数列:
class Solution {
public:
int rectCover(int number) {
if(number == 0)
return 0;
if(number ==1)
return 1;
if(number == 2)
return 2;
int a=1,b=2,c=0;
for(int i =3;i<=n;i++){
c=a+b;
a =b;
b =c;
}
return c;
}
};
原文:https://www.cnblogs.com/yl1995/p/12933368.html