本文主要是介绍SDUTOJ 1018 骨牌铺方格 递推,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
输入
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。
输出
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
示例输入
1
3
2
示例输出
1
3
2
如果往后多推几个的话,不难发现其实它就是一个斐波那契数列的一部分...
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h>using namespace std;long long s[52];int main() {int i,n;s[1]=1;s[2]=1;for(i=3;i<51;i++){s[i]=s[i-1]+s[i-2];}while(~scanf("%d",&n)){printf("%lld\n",s[n]);}return 0; }
这篇关于SDUTOJ 1018 骨牌铺方格 递推的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!