用C语言实现汉诺塔的程序

/*
本程序是模拟汉诺塔的操作过程,
将每一步的执行方法打印出来,
并记录执行次数;

主程序采用递归方式;
每执行一步等待0.5秒;
*/
#include<stdio.h>
#include<conio.h> /*for the function: clrscr()*/
#include<dos.h>  /*for the function: delay(int ms) */
int count = 0;     /*move times*/

/*将盘从柱子A移动到柱子B*/
void move(char A,char B)
{
    delay(500);  /*wait 0.5s */
    printf(“/n%d: %c -> %c”,++count,A,B);
}

/*汉诺塔主过程*/
void hanoi(int n,char A,char B,char C)
{
    if(n < 1)
 return;
    if(n == 1)
    {
 move(A,C);
 return;
    }
    hanoi(n-1,A,C,B);
    move(A,C);
    hanoi(n-1,B,A,C);
}

int main()
{
    int n = 0; /*盘子个数*/
    clrscr(); /*clear the screen*/

    printf(“Please input a int:”);
    scanf(“%d”,&n);
   
    /*主过程*/
    hanoi(n,’A’,’B’,’C’);
   
    /*任意键退出*/
    printf(“/nPress any key to EXIT!”);
    return getch();  /*wait to get a char*/
}

    原文作者: 汉诺塔问题
    原文地址: https://blog.csdn.net/adm_qxx/article/details/615918
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞