C语言经典例题(3) --- 汉诺塔问题、青蛙跳台阶问题

1.汉诺塔问题
//汉诺塔问题(递归实现)
//思路:1.将A中n-1个盘子放入B中,剩下最后一个(第n个)盘子放入C中。2.将B中n-1个盘子放入A中,剩下最后一个(第n个)放入C中。

#include <stdio.h>

void move(char x, char y)
{
    printf("%c -> %c\n", x, y);
}

void Hanoi(int n, char a, char b, char c)
{
    if (n == 1)
    {
        move(a, c);
    }
    else
    {
        Hanoi(n - 1, a, c, b);
        move(a, c);
        Hanoi(n - 1, b, a, c);
    }
}

int main()
{
    int n = 0;
    scanf("%d", &n);
    Hanoi(n, 'a', 'b', 'c');
    return 0;
}
2.青蛙跳台阶问题
//青蛙跳台阶问题(递归实现)
//一只青蛙一次可以跳一级台阶或二级台阶和三级台阶。
//当N=1时,有1种跳法。
//当N=2时,首先可以跳两个一级台阶或一个二级台阶,有2种跳法
//当N=3时,首先可以跳一次一级台阶,剩下二级台阶,N=2时,有两种跳法。跳一次三级台阶,一种跳法。跳一次二级台阶,剩下一级台阶,N=1时,有1种跳法,则共四种方法
//当N=4时,首先可以跳一次一级台阶,剩下三级台阶,N=3时,有4种跳法。跳一次二级台阶,剩下二级台阶,N=2时,有2种跳法。跳一次三级台阶,剩下一级台阶,N=1时,1种跳法。则共7种方法.
#include <stdio.h>

int dance_step(int n)
{
    if (n == 1)
        return 1;
    if (n == 2)
        return 2;
    if (n == 3)
        return 4;
    if (n > 3)
        return dance_step(n - 1) + dance_step(n - 2) + dance_step(n - 3);
}

int main()
{
    int n = 0;
    scanf("%d", &n);
    int sum = dance_step(n);
    printf("%d\n", sum);
    return 0;
}

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-22 05:58:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-22 05:58:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-22 05:58:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-22 05:58:02       18 阅读

热门阅读

  1. c++石头剪刀布游戏

    2024-03-22 05:58:02       18 阅读
  2. 如何进行Web应用的版本控制和部署?

    2024-03-22 05:58:02       25 阅读
  3. cad vba 打开excel并弹窗打开指定文件

    2024-03-22 05:58:02       16 阅读
  4. 383.赎金信

    2024-03-22 05:58:02       17 阅读
  5. bert_base_chinese入门

    2024-03-22 05:58:02       20 阅读
  6. python 之 装饰器(Decorators)

    2024-03-22 05:58:02       16 阅读
  7. shell和linux的关系

    2024-03-22 05:58:02       16 阅读
  8. PostgresSQL中的死锁和锁等待

    2024-03-22 05:58:02       17 阅读
  9. 二分图试炼之棋盘覆盖

    2024-03-22 05:58:02       17 阅读
  10. 如何搭建数据中心安全架构?

    2024-03-22 05:58:02       19 阅读
  11. oracle pctfree&pctused介绍

    2024-03-22 05:58:02       17 阅读
  12. 工大智信智能听诊科技与健康

    2024-03-22 05:58:02       18 阅读
  13. List 的 Diff 功能

    2024-03-22 05:58:02       19 阅读