c语言汉诺塔代码怎么写

592
2023/11/27 22:21:46
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

C语言的汉诺塔代码可以按照以下方式编写:

#include <stdio.h>

// 定义移动盘子的函数
void move(int n, char from, char to, char temp) {
    if (n == 1) {
        printf("Move disk 1 from %c to %c\n", from, to);
        return;
    }
    move(n - 1, from, temp, to);
    printf("Move disk %d from %c to %c\n", n, from, to);
    move(n - 1, temp, to, from);
}

int main() {
    int n;
    printf("Enter the number of disks: ");
    scanf("%d", &n);
    printf("Steps to solve the Hanoi Tower problem:\n");
    move(n, 'A', 'C', 'B');
    return 0;
}

在这段代码中,move 函数负责实现汉诺塔的移动逻辑。递归地将上方的 n-1 个盘子从 from 杆移动到 temp 杆,然后将最底下的第 n 个盘子从 from 杆移动到 to 杆,最后将之前移动到 temp 杆上的 n-1 个盘子从 temp 杆移动到 to 杆。最后在 main 函数中,用户输入盘子的数量,然后调用 move 函数来解决汉诺塔问题。程序会打印出移动每个盘子的步骤。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c语言i++和++i的区别