1. 程式人生 > >hdu 2046 簡單遞推

hdu 2046 簡單遞推

Problem Description 在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.
例如n=3時,為2× 3方格,骨牌的鋪放方案有三種,如下圖:
Input 輸入資料由多行組成,每行包含一個整數n,表示該測試例項的長方形方格的規格是2×n (0<n<=50)。 Output 對於每個測試例項,請輸出鋪放方案的總數,每個例項的輸出佔一行。 Sample Input 1 3 2 Sample Output 1 3 2

遞推知道,1--1,2--2,3--3,4--5,即可推測a[i]=a[i-1]+a[i-2];

#include<stdio.h>
int main()
{
    __int64 i,a[110];int t;//先輸出嘗試,發現輸出結果可能超出int,所以必須定義為__int64
    while(scanf("%d",&t)!=EOF)
    {
        a[1]=1;a[2]=2;
        for(i=3;i<=t;i++)
          a[i]=a[i-1]+a[i-2];
          printf("%I64d\n",a[t]);                     
    }
    return 0;
}