/*汉诺塔的玩法:
* 游戏的规则:将A柱上的盘子移动到C柱上,大盘必须在小盘之上。
* 1 当A柱上只有一个盘子的时候,直接移动到C柱上;
* 2 当A柱上有两个盘子的时候,
* 将A柱上的1盘(从上到下编号)移动到B柱,
* 将A柱上的2盘移动到C柱,
* 将B柱上的1盘移动到C柱;
* (将A上的1~n-1盘---->B柱,将A柱上n---->C柱,B柱上的1~n-1盘---->C柱)
* 3 当A柱上有三个盘子的时候,将A柱上的1~2盘移动到B柱,
* 将A柱上的3盘移动到C柱,
* 将B柱上的1~2盘移动到C柱
* (将A上的1~n-1盘---->B柱,将A柱上n---->C柱,B柱上的1~n-1盘---->C柱)
* n 当A柱上有n个盘子的时候,将A柱上的1~n-1盘移动到B柱,
* 将A柱上的n盘移动到C柱,
* 将B柱上的1~n-1盘移动到C柱。
* (将A上的1~n-1盘---->B柱,将A柱上n---->C柱,B柱上的1~n-1盘---->C柱)
* */
#include<stdio.h>
void Hanoi(int count,char a,char b,char c){
if(count == 1){
printf("FROM %c TO %c\n",a,c);
}else
{
Hanoi(count-1,a,c,b);
printf("FROM %c TO %c\n",a,c);
Hanoi(count-1,b,a,c);
}
}
int main(){
printf("please input the number of Hanoi:");
int n;
scanf("%d",&n);
Hanoi(n,'A','B','C');
return 0;
}
汉诺塔解法C语言实现
最新推荐文章于 2021-01-01 21:13:17 发布