瓷砖铺放(递归)

 1 //问题描述
 2 //  有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?
 3 //  例如,长度为4的地面一共有如下5种铺法:
 4 //  4=1+1+1+1
 5 //  4=2+1+1
 6 //  4=1+2+1
 7 //  4=1+1+2
 8 //  4=2+2
 9 //  编程用递归的方法求解上述问题。
10 //输入格式
11 //  只有一个数N,代表地板的长度
12 //输出格式
13 //  输出一个数,代表所有不同的瓷砖铺放方法的总数
14 //样例输入
15 //4
16 //样例输出
17 //5
18 #include<iostream>
19 using namespace std;
20 int zq(int n){
21     int rs;
22     if(n==1)return 1;
23     else if(n==2)return 2;
24     else rs=zq(n-1)+zq(n-2);
25     return rs;
26 }
27 int main(){
28     int n;
29     cin>>n;
30     cout<<zq(n);
31     return 0;
32 }

猜你喜欢

转载自www.cnblogs.com/zq-dmhy/p/12236464.html