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

r囧r小猫 2022-05-26 11:12 247阅读 0赞

问题描述

  有一长度为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,代表地板的长度

输出格式

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

样例输入

  1. 4

样例输出

代码解析:

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

代码:

  1. #include <iostream>
  2. 使用namespace std;
  3. int count = 0;
  4. int funint n
  5. {
  6. 如果(n == 0)返回0;
  7. 如果(n == 1)返回1;
  8. 如果(n == 2)返回2;
  9. 返回funn-1)+ funn-2);
  10. }
  11. int main()
  12. {
  13. int n;
  14. cin >> n;
  15. count = funn);
  16. cout << count;
  17. 返回0;
  18. }
  19. 使用namespace std;
  20. int count = 0;
  21. int funint n
  22. {
  23. 如果(n == 0)返回0;
  24. 如果(n == 1)返回1;
  25. 如果(n == 2)返回2;
  26. 返回funn-1)+ funn-2);
  27. }
  28. int main()
  29. {
  30. int n;
  31. cin >> n;
  32. count = funn);
  33. cout << count;
  34. 返回0;
  35. }

发表评论

表情:
评论列表 (有 0 条评论,247人围观)

还没有评论,来说两句吧...

相关阅读

    相关 算法训练 瓷砖

    问题描述   有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?