汉诺塔的C语言实现

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

/*
 * this file is the implementation of hanoi game
 * file name: hanoi.c
 * author: John Woods
 * date: 2015/05/30
 * statement: anyone can use this file for any purpose
 */
#include <stdio.h>
#include <stdlib.h>
 
//function declarations
void hanoi(int n, char x, char y, char z);
void move(int n, char x, char y);
 
//program entrance
int main(void) {
    char c;
    int n = 0; //the height of hanoi
    printf("please input the height of hanoi:");
    while(!scanf("%d", &n)) {
        while((c=getchar())!='\n' || c!=EOF);
        printf("bad input! try again:");
    }
    hanoi(n, 'x', 'y', 'z');
    return 0;
}
 
 
//function implementations
void hanoi(int n, char x, char y, char z) {
    if(1 == n) {
        move(1, x, z);
    } else {
        hanoi(n-1, x, z, y);
        move(n, x, z);
        hanoi(n-1, y, x, z);
    }
}
 
void move(int n, char x, char z) {
    printf("move disk %d from %c to %c\n", n, x ,z);
}