/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fibnacci.cpp
* 作 者: 孔云
* 完成日期:2013年11月23日
* 版 本 号: v1.0
* 输入描述:无
* 问题描述:编制移动盘子方案。
* 程序输出:盘子移动次数。
* 问题分析:采用递归的方法……
*/
#include <iostream>
using namespace std;
void move(int,char,char,char);
void dong(char,char);
void cishu(int);
int main()
{
int n;
cout<<"请输入盘子个数:";
cin>>n;
move(n,'A','B','C');
return 0;
}
void move(int n,char A,char B,char C)
{
int i=1,sum=0;
if(n==1)
{
dong(A,C);
cishu(1);
}
else
{
move(n-1,A,C,B);
dong(A,C);
cishu(i);
move(n-1,B,A,C);
}
sum+=i;
}
void dong(char a,char b)
{
cout<<a<<"-->"<<b;
}
void cishu(int sum)
{
cout<<"移动次数:"<<sum<<endl;
}
心得体会:为什么那些移动的次数加不起来呢?谁帮一下这个可怜的笨鸟啊 为什么每一次移动的次数不加起来?