题目描述:
有一个1×n的长方形,由边长为1的n个方格构成,例如,当n=3时为1×3的方格长方形如下图所示。求用1×1、1×2、1×3的骨牌铺满方格的方案总数。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个整数n(1≤n≤50)。
输出格式:
对于每组测试,输出一行,包含一个整数,表示用骨牌铺满方格的方案总数。
输入样例:
3
输出样例:
4
直接看代码吧
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
const int N=1e6;
ll a[N];
int main(){
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
a[1]=1;
a[2]=2;
a[3]=4;
for(int i=4;i<=50;i++){
a[i]=a[i-1]+a[i-2]+a[i-3];
}
int n;
while(cin>>n){
cout<<a[n]<<endl;
}
return 0;
}