您的位置:首页 > 其它

算法训练 瓷砖铺放 递归

2017-03-17 20:53 417 查看
算法训练 瓷砖铺放  递归时间限制:1.0s   内存限制:512.0MB问题描述  有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?  例如,长度为4的地面一共有如下5种铺法:  4=1+1+1+1  4=2+1+1  4=1+2+1  4=1+1+2  4=2+2  编程用递归的方法求解上述问题。输入格式  只有一个数N,代表地板的长度输出格式  输出一个数,代表所有不同的瓷砖铺放方法的总数样例输入
4
样例输出
5
#include <stdio.h>#include "string.h"#include"algorithm"#include <iostream>using namespace std ;int sum = 0 ;void cizhuan(int a){if(a == 1){sum++;return ;}if(a == 2) //当还剩2的时候有两种铺法{sum += 2;return ;}cizhuan(a-1);cizhuan(a-2);}int main(){int n ;cin >> n ;cizhuan(n);cout << sum ;}
总结:找好递归结束条件; 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: