骨牌铺方格
2017-11-05 16:00
218 查看
前言
牛客网PAT乙级训练1010题目描述
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
.jpg)
输入描述
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (1≤n≤90)。输出描述
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。输入例子
13
2
输出例子
13
2
解决方案
本题的关键点在于找到递推关系,多列出几个就会发现,最终的递推公式是斐波拉契数列。public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); while (s.hasNext()) { int x = s.nextInt(); long a[] = new long[x + 2]; a[1] = 1; a[2] = 2; if (x > 2) { for (int i = 3; i <= x; i++) { a[i] = a[i - 1] + a[i - 2]; } } System.out.println(a[x]); } } }
在这里有一点尤为重要,因为斐波拉契数列当项数超过40之后结果就会变得非常大,这时已经不能再用int来表示了,一个简单的方式就是把类型变成long型
相关文章推荐
- 骨牌铺方格 递推问题 水题 --->刘汝佳书题
- HDU 2046 骨牌铺方格
- 杭电 2046 ( 骨牌铺方格 )
- hdu2046 骨牌铺方格(C语言)
- 零起点学算法95——骨牌铺方格(找规律)
- 水题堆1.M 骨牌铺方格
- hdu-2046-骨牌铺方格
- 递推 HDU Problem K 骨牌铺方格
- hdu 2046骨牌铺方格
- 骨牌铺方格 hdu2046 递推
- 骨牌铺方格 (SDUT 1018)
- HDU 2046 骨牌铺方格
- 骨牌铺方格
- HDU_ACM-2046 骨牌铺方格
- HDU 2046 骨牌铺方格
- WV.15-骨牌铺方格
- 骨牌铺方格
- 2858:骨牌铺方格
- HDU-2046 骨牌铺方格【递推】
- HDOJ2046骨牌铺方格