剣指Offer-9度1390-矩形カバー
3802 ワード
Offer-9 1390- カバー
2014-02-05 23:27
タイトルの説明:
2*1の小さな矩形で横になったり、縦になったりして、より大きな矩形を覆うことができます.すみません、n個の2*1の小さい矩形で重ならずに1個の2*nの大きい矩形を覆って、全部で何種類の方法がありますか?
入力:
入力には、各テストケースについて、複数のテストケースが含まれる場合があります.
入力は、nが偶数である整数n(1<=n<=70)を含む.
出力:
各テストケースに対応し、
出力はn個の2*1の小さな矩形で1個の2*nの大きな矩形を重ならずに覆い、合計である方法数である.
サンプル入力:
4
サンプル出力:
5
:
フィボナッチ , 。
O(n), O(1), O(n)。
1 // 688894 zhuli19901106 1390 Accepted case 1020KB 362B 0MS
2 // 201402020104
3 #include <cstdio>
4 #include <cstdlib>
5 using namespace std;
6
7 int main()
8 {
9 const int MAXN = 71;
10 long long int res[MAXN];
11
12 res[0] = res[1] = 1;
13 int i;
14 for (i = 2; i < MAXN; ++i) {
15 res[i] = res[i - 2] + res[i - 1];
16 }
17
18 while (scanf("%d", &i) == 1) {
19 printf("%lld
", res[i]);
20 }
21
22 return 0;
23 }