-
题目描述:
-
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
-
输入:
-
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70),其中n为偶数。
-
输出:
-
对应每个测试案例,
输出用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有的方法数。
-
样例输入:
-
4
-
样例输出:
-
5
-
-
#include <iostream> using namespace std; //递推公式:f(n)=f(n-1)+f(n-2) //谨记:斐波那契数列数据类型一定不是int,一定要是long甚至更大 long result[71]={1,1,2};//result[0]无意义 void getResult() { for(int i=3;i<71;i++) { result[i]=result[i-1]+result[i-2]; } } int main() { int n; getResult(); while((cin>>n)&&(n>=1)&&(n<=70)) { cout<<result[n]<<endl; } return 0; } /************************************************************** Problem: 1390 User: fuestck Language: C++ Result: Accepted Time:10 ms Memory:1520 kb ****************************************************************/