/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院
* All rightsreserved.
* 文件名称:0003.cpp
* 作 者:王鼎
* 完成日期:2012年11月25日
* 版 本 号: v1.0
* 输入描述:无
* 问题描述:略
* 程序输出:汉诺塔搬盘子方式
* 问题分析:略
*/
#include<iostream>
using namespace std;
int main()
{
void han(int n ,char A,char B,char C);
int m=4;
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;
}
运行结果:
更改盘子数的时候把m的值改掉就好。也可以直接输入,不过不能输入太大的数。
心得体会:毫无PS痕迹……