递归解决汉诺塔问题

来源:互联网 发布:什么相机软件最好 编辑:程序博客网 时间:2024/06/07 07:35

Hanoi Tower问题,C语言实现,程序给出的是三个盘子的情况.

#include <stdio.h>#include <stdlib.h>// x 借助 y 移动到 zvoid Hanoi(int n, char x, char y, char z){    if (n == 1)        printf("第 %d 个盘子 : %c ---> %c\n",n,x,z);    else    {        /*        1. 将 n-1个盘子从 x 借助 z 移动到 y 上        2. 将第 n 个盘子从 x 移动到 z上        3. 将 n-1 个盘子从y 借助 x 移动到 z上        */        Hanoi(n-1 ,x,z,y);        printf("第 %d 个盘子 : %c ---> %c\n",n,x,z);        Hanoi(n-1 ,y,x,z);    }}int main(int argc,char *argv[]){    char x = 'x',y = 'y',z = 'z';    Hanoi(3,x,y,z);    return EXIT_SUCCESS;}

这里写图片描述

原创粉丝点击