C语言求解汉诺塔问题

C语言解决汉诺塔问题:

c 复制代码
#include <stdio.h>
 
void move(int n, char a, char b, char c)
{
    if(n == 1){
        printf("%c --> %c\n", a, c);
        return;
    }
    move(n - 1, a, c, b);
    printf("%c --> %c\n", a, c);
    move(n - 1, b, a, c);
}
 
int main()
{
    int n;
    printf("请输入数字n:");
    scanf("%d", &n);
    printf("移动步骤如下:\n");
    move(n, 'A', 'B', 'C');
    return 0;
}

在此代码中,我们定义了一个 move 函数,其中 n 表示要移动的盘子数目,a, b, c 分别表示 3 根柱子的名称。

当盘子数为 1 时,我们直接将盘子从 A 柱子移动到 C 柱子。当盘子数大于 1 时,我们先将 n - 1 个盘子从 A 柱子移动到 B 柱子,然后将最后一个盘子从 A 柱子移动到 C 柱子,最后将 n - 1 个盘子从 B 柱子移动到 C 柱子。

相关推荐
贾斯汀玛尔斯44 分钟前
每天学一个算法--LSM-Tree(Log-Structured Merge Tree)
java·算法·lsm-tree
SunnyByte4 小时前
C语言——贪吃蛇的实现
c语言·单链表·贪吃蛇
浅念-5 小时前
刷穿LeetCode:BFS 解决 Flood Fill 算法
数据结构·c++·算法·leetcode·职场和发展·bfs·宽度优先
做cv的小昊6 小时前
【TJU】研究生应用统计学课程笔记(8)——第四章 线性模型(4.1 一元线性回归分析)
笔记·线性代数·算法·数学建模·回归·线性回归·概率论
贾斯汀玛尔斯6 小时前
每天学一个算法--倒排索引(Inverted Index)
算法·inverted-index
小e说说6 小时前
打破偏科困境:这些学习软件助孩子重燃学习热情
算法
月昤昽7 小时前
autoCAD二次开发 4.正多边形与collection区分
算法·c#·二次开发·autocad二次开发
休息一下接着来7 小时前
C++ 固定容量环形队列实现
c++·算法
im_AMBER8 小时前
手撕hot100之矩阵!看完这篇就AC~
javascript·数据结构·线性代数·算法·leetcode·矩阵