一本日文数据结构书上看到的 用了递归
代码如下‘
#include <stdio.h>
void TowerOfHanoi(int disk, char from, char via, char to){
if (disk==1){
printf("円盤: %d を%cから%cへ移動する\n", disk, from, to);
}
else{
TowerOfHanoi(disk-1, from, to, via);
printf("円盤: %d を%cから%cへ移動する\n", disk, from, to);
TowerOfHanoi(disk-1, via, from, to);
}
}
main(){
TowerOfHanoi(3,'A','B','C');
}
执行后结果如下
円盤: 1 をAからCへ移動する 円盤: 2 をAからBへ移動する 円盤: 1 をCからBへ移動する 円盤: 3 をAからCへ移動する 円盤: 1 をBからAへ移動する 円盤: 2 をBからCへ移動する 円盤: 1 をAからCへ移動する