HRBUST - 2186 铺地砖(思维)

这次我们用2 * 1的地板砖来铺地,地是一块3 * n的矩形,你能告诉我有多少种铺地的方案么?

 

Input

本题有多组测试数据,每组测试数据包含一个正整数n(0 <= n <= 40)。

Output

对于每组测试数据输出铺地的种类数。

Sample Input

4

5

6

Sample Output

11

0

41

题意:略,正常人能看懂。

题解:看到例子5输出0,仔细思考,只要是奇数都是0,偶数自己画出2的来,然后结合例子,推出公式,公式是什么呢,看代码,就能懂,上代码:

#include 
using namespace std;
typedef long long ll;
ll a[50];
void init(){a[0]=1;//这个需要初始化为1,很容易想到a[1]=0;a[2]=3;for (int i = 3; i <= 40;i++){if(i&1) a[i]=0;else a[i]=a[i-2]*4-a[i-4];//递推式}
}
int main(){init();int n;while(cin >> n){cout << a[n] << endl;}return 0;
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部