ALGO-11 算法训练 瓷砖铺放(递归)

问题描述

  有一长度为N(1 <= N <= 10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限要将这个长度为Ñ的地板铺满,一共有多少种不同的铺法?
  例如,长度为4的地面一共有如下5种铺法:
  4 = 1 + 1 + 1 + 1
  4 = 2 + 1 + 1
  4 = 1 + 2 + 1
  4 = 1 + 1 + 2
  4 = 2 + 2
  编程用递归的方法求解上述问题。

输入格式

  只有一个数N,代表地板的长度

输出格式

  输出一个数,代表所有不同的瓷砖铺放方法的总数

样例输入

4

样例输出

 

代码解析:

当台阶为1的时候只有1种情况台阶为2的时候有两种情况两个1m瓷板或者一个2米瓷板

代码:

#include 
使用namespace std;
int count = 0;

int fun(int n)
{
	如果(n == 0)返回0;
	如果(n == 1)返回1;
	如果(n == 2)返回2;
	返回fun(n-1)+ fun(n-2);
}

int main()
{
	int n;
	cin >> n;	
	count = fun(n);
	cout << count;
	
	返回0;
}
使用namespace std;
int count = 0;

int fun(int n)
{
	如果(n == 0)返回0;
	如果(n == 1)返回1;
	如果(n == 2)返回2;
	返回fun(n-1)+ fun(n-2);
}

int main()
{
	int n;
	cin >> n;	
	count = fun(n);
	cout << count;
	
	返回0;
}

 

 

你可能感兴趣的:(蓝桥杯,数据结构与算法)