您的位置:首页 > 其它

第十三周上机任务-项目3(扩展-求移动盘子的 次数(数学函数))--汉诺塔

2012-11-25 17:01 513 查看
/*
移动盘子的 总次数为pow(2,n)-1;
n为盘子的总个数
/*
02.* Copyright (c) 2011, 烟台大学计算机学院
03.* All rights reserved.
04.* 文件名称:fibnacct.cpp
05.* 作者:袁静
06.* 完成日期:2012 年11月24日
07.* 版本号:v1.0
08.* 对任务及求解方法的描述部分
09.* 输入描述:无
10.* 问题描述:
11.* 程序输出:移动盘子的 总次数account以及移动方案
12.* 问题分析:运用数学函数
14.*/

#include <iostream>
#include <cmath>;
using namespace std;
void move(int, char, char,char);
int main()
{   int n,count;
cout<<"请输入盘子的 总数为: "<<endl;
cin>>n;
count=pow(2,n)-1;
move(n,'A','B','C');
cout<<" 移动盘子的次数为"<<count<<endl;
return 0;
}

void move(int n, char A, char B,char C)
{        if(n==1)      {
cout<<A<<"-->"<<C<<endl;
return;        }
else
{
move(n-1,A,C,B);
cout<<A<<"-->"<<C<<endl;
move(n-1,B,A,C);          return;
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: