1342: 【作】【入门】骨牌铺方格

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:29 解决:15

题目描述

1×n(n<=50)的一个长方形,用一个1×11×21×3的骨牌铺满方格,请问有多少种铺法?

例如当n=3时为1×3的方格。此时用1×11×21×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;
}