您的位置:首页 > 编程语言 > C语言/C++

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

2006-03-05 14:35 357 查看
/*
本程序是模拟汉诺塔的操作过程,
将每一步的执行方法打印出来,
并记录执行次数;

主程序采用递归方式;
每执行一步等待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*/
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: