HDU

来源:互联网 发布:两小无猜网络剧播出 编辑:程序博客网 时间:2024/06/05 14:20

题目连接:HDU - 2046

题目描述:

在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:


Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
132
Sample Output
132

思路:就是简单递推,每增加一列,可以看成一下两种情况:

1.前n-1列加最后一列竖着摆

2.前n-2列加后两列横着摆

所以答案就是斐波那契数列!!

代码:

#include<stdio.h>#include<string.h>typedef long long ll ;ll s[55] , dp[55] ;int main() {dp[0] = 1 ;dp[1] = 1 ;for( int i=2 ; i<=50 ; i++ ) dp[i] = dp[i-1] + dp[i-2] ;int n ;while( scanf("%d" , &n ) != EOF ) {printf("%lld\n" , dp[n] ) ;}return 0 ;}



原创粉丝点击