第十三周上机任务-项目3(扩展-求移动盘子的 次数(数学函数))--汉诺塔
来源:互联网 发布:淘宝手机首页装修代码 编辑:程序博客网 时间:2024/05/26 12:56
/*移动盘子的 总次数为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; } }