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 }