用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);
}
不知道你这个问题是否已经解决, 如果还没有解决的话: