/*
移动盘子的 总次数为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;
}
}
第十三周上机任务-项目3(扩展-求移动盘子的 次数(数学函数))--汉诺塔
最新推荐文章于 2021-08-25 12:09:29 发布