其他分享
首页 > 其他分享> > HDUOJ:【3】2046骨牌铺方格

HDUOJ:【3】2046骨牌铺方格

作者:互联网

原题目:

http://acm.hdu.edu.cn/showproblem.php?pid=2046

 主要思路:

仔细观察排列的方式,当列数为n时,可理解为以下两种情况:

  1. 由n-1列在最右侧加一列
  2. 由n-2列在最右侧加两行

讨论一下为什么没有考虑n-2列加两列的情况,因为n-2列加一列就相当于n-1列了,这些情况数已经包括在了情况1中。

源代码:

#include <iostream>
using namespace std;
int main()
{
	int n;
	unsigned long long int cal[55];
	cal[1] = 1;
	cal[2] = 2;
	cal[3] = 3;
	for(int i = 4; i <= 54; i++)
	{
		cal[i] = cal[i-1] + cal[i-2];
	}
	while(scanf("%d",&n) != EOF)
	{
		printf("%llu\n",cal[n]);
	}
	return 0;
}

 

Alex_497259 发布了4 篇原创文章 · 获赞 0 · 访问量 61 私信 关注

标签:2046,列加,int,HDUOJ,long,一列,骨牌,cal
来源: https://blog.csdn.net/Alex497259/article/details/104056152