/*
烟台大学计算机学院 2016
作者:张威
完成日期:2017年3月5日
*/
#include <stdio.h>
#include <stdlib.h>
void MoveSingleDisk(char start,char finish)
{
printf("%c->%c\n",start,finish);
}
void MoveTower(int n,char start,char finish,char temp)
{
if(n==1)
MoveSingleDisk(start,finish);
else
{
MoveTower(n-1,start,temp,finish); //将n-1大小的圆盘从start处移动到finish处
MoveSingleDisk(start,finish); //将单独的那个圆盘从start处移动到finish处
MoveTower(n-1,temp,finish,start); //将n-1大小的那个圆盘从temp处移动到finish处
}
}
int main()
{
int n;
scanf("%d",&n);
MoveTower(n,'A','C','B');
return 0;
}
oj-刷题 汉诺塔问题
最新推荐文章于 2021-03-21 20:53:26 发布