骨牌铺方格

D - 骨牌铺方格

Description
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种:
Input
输入包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。

Output
输出铺放方案的总数。

Samples
Sample #1
Input
3
Output
3

分析:

简单递归;
第一种情况:第n个位置竖着放,那么现在只需知道前n-1个是如何摆放的
第二种情况:第n-1个和第n个横着放,那么我们只需要知道前n-2个位置是如何摆放的
易错点:long long a[n];
数可能超过int 能表示的范围。

#include 
using namespace std;
long long  a[55];
int main(){
	int n;
    a[1]=1;
	a[2]=2;
	a[3]=3;
	cin>>n;
	for(int i=3;i<=n;i++)
	    a[i]=a[i-1]+a[i-2];
	cout<<a[n]<<endl;
}

你可能感兴趣的:(题解,算法,c++,数据结构)