用vs写一个64个盘子的汉诺塔递推子函数要求头文件用stdio

用vs写一个64个盘子的汉诺塔递推子函数要求头文件用stdio

#include <stdio.h>

//定义全局变量
int r=0;//计步
char x = 'A';//塔A
char y = 'B';//塔B
char z = 'C';//塔C

//Hanoi函数,移动盘子的步骤
int Hanoi(int n, char x, char y, char z)
{
    if (n == 1) {
        r=move(x,z);
    }
    else {
        Hanoi(n - 1, x, z, y);
        r=move(x, z);
        Hanoi(n - 1, y, x, z);
    }
}

//移动盘子的具体步骤输出
int move(char x, char y)
{
    printf("%c-->%c\n", x, y);
    r++;
}
// hanoi塔问题,输入盘子数,输出具体盘子的移动步骤
int main()
{
    int n;
    printf("需要移动的盘子数为:");
    scanf_s("%d", &n);
    r=Hanoi(n,x,y,z);
    printf("需要移动%d步骤\n", r);
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^