河内塔
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了河内塔相关的知识,希望对你有一定的参考价值。
#include<stdio.h> void towers(int,char,char,char); int main() { int num; printf("Enter the number of disks : "); scanf("%d", &num); printf("The sequence of moves involved in the Tower of Hanoi are :\n"); towers(num,‘a‘,‘b‘,‘c‘); //将a柱子上的盘子移到b柱子上,借助于c柱子 getchar(); getchar(); return; } void towers(int num, char frompole, char topole, char auxpole) { if(num==1) printf("move disk 1 from pole %c to pole %c\n", frompole, topole); else { towers(num-1,frompole,auxpole,topole); //将a柱子上的num-1个盘子移到c柱子上,借助于b柱子 printf("move disk %d from pole %c to pole %c\n", num, frompole, topole); //将a柱子上的最大的盘子移动到b柱子上 towers(num-1,auxpole,topole,frompole);//将c柱子上的num-1个盘子移动到b柱子上,借助于a柱子 } }
运行结果
以上是关于河内塔的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 以递归方式做河内塔问题的基准.n = 20来自维基百科的伪代码:https://zh.wikipedia.org/wiki/汉诺塔