汉诺塔解法C语言实现

来源:互联网 发布:免流软件原理 编辑:程序博客网 时间:2024/05/16 16:15
/*汉诺塔的玩法: * 游戏的规则:将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;}

0 0