2046——骨骼铺方格

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

思路:我觉得就是f(n)=f(n-1)+f(n-2);

但是用递归超时了,所以用迭代法,不过需要注意的是输出的数据类型是int的话,会过界,所以要选择double,输出是%.lf输出整数。

#include<stdio.h>
int main(){
    int n,i;
    double a[1000];
    a[1]=1;
    a[2]=2;
    for(i=3;i<=50;i++){
        a[i]=a[i-1]+a[i-2];
    }
    while(scanf("%d",&n)!=EOF)
{

    printf("%.lf\n",a[n]);
}
return 0;
} 
时间: 2024-08-08 01:24:13

2046——骨骼铺方格的相关文章

hdoj 2046 骨牌铺方格 【DP】+【斐波那契】

dp果然不是好学的... 第n个,即2*n时,可由第n-1个的竖直排列再加一个,和第n-2个中横着排两个 所以f(n) = 1×f(n-1) + 1×f(n-2): 骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 28412    Accepted Submission(s): 13771 Problem Descripti

HDU 2046 骨牌铺方格(简单递推)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2046 骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 36089    Accepted Submission(s): 17535 Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输

HDU 2046 骨牌铺方格(递推)

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 42774    Accepted Submission(s): 20735 Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Inpu

hdu 2044(蜜蜂)2045(RPG难题)2046(骨牌铺方格)2047()

2044:没有仔细思考就看了题解,知道这样不好,但是还有8天就要比赛了,真是心虚到不要不要的,我打算这几天尽量把11页上的水题刷完,在回过头看看,因为实在是没有时间啦,至少到时候我不能在这些水题丢分哪.质变才能量变!! 题解:这个题可以用递归但是还有更简单的方式: 看到蜂巢上的数字其实可以明白了.相差为1或2的两个蜂巢都只有一条路能通到.而相差3的呢?其实就是走到b点相邻点的方式有几种,与b直接相邻的这有两个点.那到b定其实就是到b-1点和到b-2点的路数之和,这就回到了大家很熟悉的斐波那契数列

HDoj 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 Author lcy Source

(补题 杭电 2046)骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 68313 Accepted Submission(s): 32884 Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input 输入数据由

骨牌铺方格(杭电2046)

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 30887    Accepted Submission(s): 14949 Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Inpu

HDU2046 骨牌铺方格

问题链接:HDU2046 骨牌铺方格.入门训练题,用C语言编写程序. 这是一个典型的递推计算题. f(0) = 0,没有地方摆骨牌,所以为0: f(1) = 1,只能竖着摆放1个骨牌: f(2) = 2,可以是横着摆放2个骨牌,或者竖着摆放2个骨牌: f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基础上在右边再横着放2个骨牌(竖着放已经在f(n-1)中),也可以在f(n-1)的基础上在右边再竖着1个骨牌. AC程序如下: /* HDU2046 骨牌铺方格 */ #in

[hdu-2046] 骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27095    Accepted Submission(s): 13089 Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Inpu