Tower of Hanoi

一本日文数据结构书上看到的  用了递归

代码如下‘

#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へ移動する

猜你喜欢

转载自blog.csdn.net/sinat_22014829/article/details/46878383