ACM 2046 骨牌铺方格

http://acm.hdu.edu.cn/showproblem.php?pid=2046

 

分析第N位,有两种形式1.竖着(F(N-1)),2横着(F(N-2)

所以F(N) = F(N-1) + F(N-2)

 

N<=50 这里应该用double

 

代码如下:

#include <stdio.h>

int main()
{
    int n,i;
    double a[60];
    a[0]=1;
    a[1]=1;
    a[2]=2;
    for (i=3; i<54; i++) {
        a[i]=a[i-1]+a[i-2];
    }
    while (scanf("%d",&n)!=EOF) {
        printf("%.0f\n",a[n]);
    }
    return 0;
   
}
 

你可能感兴趣的:(ACM)