贴瓷砖问题——找规律+投机取巧

3309: HuaHua‘s birthday

时间限制: 1 Sec  内存限制: 128 MB
提交: 52  解决: 24
[提交][状态][讨论版]

题目描述

花花就要过生日啦~在过生日这天,花花决定把好朋友邀请到家里来做客,花花看了看乱糟糟的房子,决定好好整理一下,再买点东西装饰一下~

花花家里有一个走廊,宽度为2,长度为n。有一天,他想给这个走廊铺上瓷砖,瓷砖有两种规格,一种是2*1,一种是2*2,请帮他算算一共有多少种铺瓷砖的方法。

输入

输入有多个测试样例。输入每行包含一个正整数N(N<=31),表示走廊的大小是2行N列。以EOF结尾。

输出

输出一共有多少种铺设的方法,每组数据的输出占一行。

样例输入

3
5
9

样例输出

5
21
341
#include "bits/stdc++.h"
using namespace std;

int main()
{
    int a[50];
    a[1] = 1;
    a[2] = 3;
    for(int i=3;i < 33;i++)
        a[i] = a[i-1] + 2*a[i-2];
    int n;
    while(cin >> n)
    {
        cout << a[n] << endl;
    }
    return 0;
}

比赛时想了一个多小时,想到了递归,当时就应该思考到要用猜测的方法把规律猜出来!!日

原文地址:https://www.cnblogs.com/cunyusup/p/7990176.html