Background
Special for beginners, ^_^
Description
有 1×n 的一个长方形,用一个 1×1、1×2 和 1×3 的骨牌铺满方格。例如当 n=3 时为 1×3 的方格。此时用 1×1、1×2 和 1×3 的骨牌铺满方格,共有四种铺法。如下图:
Input
一个整数n(1≤n≤36),表示1×n 的长方形。
Output
一个整数,表示铺满给定长方形的方法数。
Samples
輸入資料 1
3
輸出資料 1
4
Limitation
1s, 1024KiB for each test case.
代码:
#include<iostream>
using namespace std;
int a[105];
int main()
{
int n;
cin>>n;
a[1] = 1;
a[2] = 2;
a[3] = 4;
if(n == 1)
{
cout<<1;
return 0;
}
else if(n == 2)
{
cout<<2;
return 0;
}
else if(n == 3)
{
cout<<4;
return 0;
}
for(int i = 4; i <= n; i++)
{
a[i] = a[i - 1] + a[i - 2] + a[i - 3];
}
cout<<a[n];
return 0;
}
谢谢观看。
该程序计算使用1x1,1x2,和1x3骨牌铺满1xn长方形的所有方法数。初始值为a[1]=1,a[2]=2,a[3]=4,之后的值通过递推公式a[i]=a[i-1]+a[i-2]+a[i-3]计算得出。
1460





