汉诺塔C语言程序

来源:百度知道 编辑:UC知道 时间:2024/03/28 18:14:55
我想要 一个的汉诺塔的C语言程序
最好还有程序的主要算法思想,谢谢各位帅哥美女!!!
很急啊!!!

hanoi(int n,char a,char b,char c)
//将n个盘子从a通过b移动到c
{
if(n==1)
move(a,1,c); //将编号为1的盘子从a移动到c
else
{
hanoi(n-1,a,c,b);
move(a,n,c);//将编号为n的盘子从a移动到c
hanoi(n-1,b,a,c);
}

}

main()
{
int n;
void hanoi(int n,char a,char b,char c);
printf(";lease enter the number of disks to be moved:");
scanf("%d",&n);
hanoi(n,'a','b','c');
}
void hanoi(int n,char a,char b,char c)
{
if(n>0)
{hanoi(n-1,a,c,b);
printf("\n move disc %d from pile %c to %c",n,a,b);
hanoi(n-1,c,b,a)};
}

C++:
#include <iostream>
#include <string>
using namespace std;
//移动函数;
void move(char start,char finish)
{
cout << start <<"------->" <<finish <<endl;
}
//把n个盘子从start柱子借助temp移动到finish柱子;
void hanoi(int n, char sta