(step 3.1.6)hdu 2501(Tiling_easy version)

来源:互联网 发布:淘宝卖家如何发布宝贝 编辑:程序博客网 时间:2024/05/19 21:17

题目大意:输入一个整数t表示测试用例的个数。接着输入一个整数n表示长方形的宽。求要想铺满这个长方形,有多少种铺法???(与2046的不同之处就在于这是有两种砖头可以使用)


解题思路:

1)

假设前N-1种 已经排好那么只有一种摆放方式如果前 N-2 种已经摆放好那么有3

摆放方式其中的|| 方式跟 前面重复 舍弃因此 剩 

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

代码如下:

/* * 2501_1.cpp * *  Created on: 2013年8月13日 *      Author: Administrator */#include <stdio.h>#include <string.h>int main(){int fib[31];    memset(fib,0,sizeof(fib));fib[1] = 1;fib[2] = 3;int i ;for(i = 3 ; i <= 30 ; ++i){fib[i] = fib[i-1] + 2* fib[i-2];}int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);printf("%d\n",fib[n]);}}


原创粉丝点击