您的位置:首页 > 编程语言 > C语言/C++

汉诺塔解法C语言实现

2016-03-11 22:45 316 查看
/*汉诺塔的玩法:
* 游戏的规则:将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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: