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; }