hdu 2046 簡單遞推
阿新 • • 發佈:2019-02-20
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
例如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;
}