063.汉诺塔问题

网友投稿 641 2022-05-28

/*//*/

/* 汉诺塔问题 */

/*//*/

#include

/* hanoil 子程序,实现将n个盘子从a移动到c */

void hanoil(int n,char a,char b, char c)

{

if(n==1) /* 递归调用的出口,n=1 */

printf(" >> Move Plate No.%d from Stick %c to Stick %c.\n",n,a,c);

else

{

hanoil(n-1,a,c,b); /* 递归调用 */

printf(" >> Move Plate No.%d from Stick %c to Stick %c.\n",n,a,c);

hanoil(n-1,b,a,c);

}

}

/****************************** 主程序******************************/

void main()

{

063.汉诺塔问题

int n;

char a='A';

char b='B';

char c='C';

clrscr();

printf("This is a hanoil program.\nPlease input number of the plates:\n");

scanf("%d",&n);

if(n<=0)

{

puts("n must no less than 1!");

exit(1);

}

puts("The steps of moving plates are:");

hanoil(n,a,b,c);

puts("\n Press any key to quit...");

getch();

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:powershell基础免杀(一)
下一篇:Redis 和 memcache 有什么区别
相关文章