汉诺塔
#include<stdio.h>
void hanoi(int n, char a, char b, char c)//a为起始柱,c为重点柱,b为中间柱
{
if (n == 1) printf("%c-->%c\n", a, c);
else
{
hanoi(n - 1, a, c, b);
//把最后一片n独立,上n-1片移动到中间柱,也就是b柱,此时b为终点柱
printf("%c-->%c\n", a, c);//把第n片放到hanoi(n)的重点柱
hanoi(n - 1, b, a, c);
//继续移动n-1片圆盘,因为经过上一次hanoi(n-1)
//上n-1片圆盘的其实点全变成了b柱(也就是一开始的中间柱)
}
}
int main()
{
int n;
scanf("%d", &n);
hanoi(n,'a','c','b');
return 0;
}
浙公网安备 33010602011771号