您的位置:首页 > 其它

HDU - 2046骨牌铺方格 递推 - 斐波那契数列

2017-11-25 14:04 459 查看
题目连接:HDU - 2046

题目描述:

在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.前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
) ;
}
return 0 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  思维