#漢諾塔#
代碼
#include <iostream>
#include <stdio.h>
using namespace std;
//漢諾塔函數,參數,n剩餘棋子數,prime棋子初始所在杆,help移動棋子需要藉助的杆,target最終移動的目標杆
void hanoi(int n, char prime, char help, char target){
if (n == 1){ //如果只剩一個棋子,就直接從原來的位置移動到目標位置
printf("%c->%c\n",prime, target);
}else{
hanoi(n-1, prime, target, help); //如果棋子數大於1,就先調用移動上面n-1個棋子的函數,將n-1個棋子移動到help位置上
printf("%c->%c\n", prime, target); //然後將第n個從初始位置移動到目標位置
hanoi(n-1, help, prime, target); //到此時,n-1個棋子在help位置上,再調用將這n-1個棋子移動到target位置上的函數
}
}
int main()
{
int n = 0; //漢諾塔棋子數
scanf("%d", &n);
hanoi(n,'a','b','c'); //第一次調用
return 0;
}