杭电OJ变形 骨牌铺满方格 2501

举报
花花叔叔 发表于 2022/08/13 00:01:16 2022/08/13
【摘要】 问题描述 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 ,请计算一共有多少种铺设的方法。 (类似于斐波那契数列) 问题分析:(重要) 先将n=1,n=2分析出...

问题描述
有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 ,请计算一共有多少种铺设的方法。
(类似于斐波那契数列)
问题分析:(重要)
先将n=1,n=2分析出来,(先将初始的几个值分析出来)
之后从最后面分析递推公式。所有的骨牌只有两只形式放置(横或者竖),当骨牌竖着放置时,所有的方法有f(n-1)种,当骨牌横着放置时,所有的方法有f(n-2)种;所以递推公式为这两种方法的总合 f(n)=f(n-1)+f(n-2)。
代码:

#include<stdio.h>
int a(int m)
{
	if(m==1)
	{
		return 1;
	}
	if(m==2)
	{
		return 2;
	}else 
	{
		return a(m-1)+a(m-2);
	}
}
int main()
{
	int n,i,m;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&m);
		printf("%d\n",a(m));
	}
	return 0;
 } 

文章来源: blog.csdn.net,作者:花花叔叔,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_52077949/article/details/114800239

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。