首页 > 代码库 > [hdu-2046] 骨牌铺方格
[hdu-2046] 骨牌铺方格
骨牌铺方格
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 27095 Accepted Submission(s): 13089
Problem Description
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
1 3 2
Sample Output
1 3 2
1、n 张牌可以由 n - 1 张牌后面再加一张竖着放的牌得到,还可以由 n - 2 张牌后面再加两张牌得到。
2、n - 2 张牌后面再加两张牌的情况只能是加两张横着放的,如果加两张竖着放的牌会和“ n - 1 张牌后面再加一张牌”的情况重复。
3、综上所述,f ( n ) = f ( n - 1 ) + f ( n - 2 ) 斐波那契数列!
import java.util.Scanner; public class Main { static long[] nums = new long[51]; static { nums[1] = 1; nums[2] = 2; for (int i = 3; i < 51; i++) { nums[i] = nums[i - 1] + nums[i - 2]; } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); System.out.println(nums[n]); } } }
[hdu-2046] 骨牌铺方格
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。