此代码借鉴www.fishc.com的小甲鱼大佬源码。
我目前在B站上看他的视频自学。
C语言入门到入土…
功能:打印出汉诺塔解决步骤。
/*初学C语言,有不足还请指正*/
#include<stdio.h>
#include"math.h"
#include"conio.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) //层数是一就直接到C去
move(A, C);
else
{
hanoi(n - 1, A, C, B);//把n-1个盘子 由A 借助C 到B
move(A, C); //打印过程
hanoi(n - 1, B, A, C);//再把上面的n-1个盘子 由B 借助A 到C
}
}
void main()
{
void move(char x, char y);
void hanoi(int n, char A, char B, char C);
int i = 0;
printf("输入层数:");
scanf_s("%d", &i);
hanoi(i, 'A', 'B', 'C');
}