1342: 【作】【入门】骨牌铺方格
内存限制:512 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:29
解决:15
题目描述
有1×n(n<=50)的一个长方形,用一个1×1、1×2和1×3的骨牌铺满方格,请问有多少种铺法?
例如当n=3时为1×3的方格。此时用1×1、1×2和1×3的骨牌铺满方格,共有四种铺法。如下图:

输入
一个整数n(n<=50)
输出
骨牌的铺法
样例输入 复制
3
样例输出 复制
4
提示
#include<bits/stdc++.h>
using namespace std;
long long f[60],n;
int main(){
cin>>n;
f[1]=1;
f[2]=2;
f[3]=4;
for (int i=4;i<=n;i++) {
f[i]=f[i-1]+f[i-2]+f[i-3];
}
cout<<f[n];
return 0;
}
#include<iostream>
using namespace std;
int main(){
long long a,b,c,x,n,i;
cin>>n;
a = 1;
b = 2;
c = 4;
if(n == 1){
cout<<1<<endl;
}else if(n == 2){
cout<<2<<endl;
}else if(n == 3){
cout<<4<<endl;
}else{
for(i = 4;i <= n;i++){
x = a + b + c;
a = b;
b = c;
c = x;
}
cout<<x<<endl;
}
return 0;
}