/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: hannuota.cpp
* 作 者:赵冠哲
* 完成日期:2012年11月21日
* 版本号: v1.0
*
* 输入描述:无
* 问题描述:汉诺塔
* 程序输出:破解汉诺塔的步骤
* 问题分析:略
*/
#include<iostream>
using namespace std;
int main()
{
void han(int n ,char A,char B,char C);
int m;
cout<<"请输入盘子数:";
cin>>m;
cout<<"移动"<<m<<"个盘子方案是"<<endl;
han(m,'A','B','C');
return 0;
}
void han(int n,char A,char B,char C)
{
void move(char x,char y);
if (n==1)
move(A,C);
else
{
han(n-1,A,C,B);
move(A,C);
han(n-1,B,A,C);
}
}
void move(char x,char y)
{
cout<<x<<"-->"<<y<<endl;
}
运行结果:
心得体会:
真是九牛二虎之力。。。