HDOJ 2046 骨牌铺方格

来源:互联网 发布:excel怎么汇总数据 编辑:程序博客网 时间:2024/05/17 07:33

题目叙述:

在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:

解体思路:

(1)最初思路:直接想四个方格的情况,发现为5,5=2+3.又知道是递推于是联想num[i]=nu[i-1]+num[i-2].

  (2)改进思路:第2*i个方格,其实为第2*(i-1)个方格加上一个2*1方格,板子在上面竖着放,同时第2*(i-2)个方格加上一个2*2方格,板子在上面横着放。


我的代码:

#include<iostream>using namespace std;int main(){    int n;    long long int num[55]={0,1,2,3};    for(int i=4;i<=50;i++)    {        num[i]=num[i-1]+num[i-2];    }    while(cin>>n)    {        cout<<num[n]<<endl;    }    return 0;}


0 0