汉诺塔的C语言实现

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
/*
 * 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);
}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C语言转换字符串为大写和小写

下一篇: C#文件路径获取函数和文件名字获取函数