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

问题描述
有一个大小是 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/qq_52077949/article/details/114800239