/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: x.cpp
* 作者:徐本锡
* 完成日期: 2012年11 月24 日
* 版本号: v1.0
* 输入描述:
* 问题描述:
* 程序输出:
*/
#include <iostream>
using namespace std;
const int discCount=3;
long move(int, char, char,char);
int main()
{
long count;
count=move(discCount,'A','B','C');
cout<<discCount<<"个盘子需要移动"<<count<<"次。"<<endl;
return 0;
}
long move(int n, char A, char B,char C)
{
long c1,c2,m;
if(n==1)
{
cout<<A<<"-->"<<C<<endl;
return 1;
}
else
{
c1=move(n-1,A,C,B);
cout<<A<<"-->"<<C<<endl;
c2=move(n-1,B,A,C);
m=c1+c2;
return m+1;
}
}