当前位置: 首页 > wzjs >正文

淮南高端网站建设女孩做网站工作辛苦吗

淮南高端网站建设,女孩做网站工作辛苦吗,什么是开放式的网站,怎么学做电商文章目录 简介程序逻辑源码 简介 用 C 写了一个汉诺塔程序,它的特点是可以看出移动之后的效果,即可以查看移动之后目标塔中圆盘的顺序,是否和来源塔的圆盘顺序一致。 运行程序的效果图如下。这里用了 5 个圆盘示例,可以自行添加任…

文章目录

  • 简介
  • 程序逻辑
  • 源码

简介

用 C++ 写了一个汉诺塔程序,它的特点是可以看出移动之后的效果,即可以查看移动之后目标塔中圆盘的顺序,是否和来源塔的圆盘顺序一致。
运行程序的效果图如下。这里用了 5 个圆盘示例,可以自行添加任意数量的圆盘:
在这里插入图片描述


程序逻辑

汉诺塔游戏的要求:

  1. 把 n 个圆盘从 source 塔移到 dest 塔,可以借助 intermediate 作为过渡塔。
  2. 最大的圆盘在最下面,越往上则圆盘越小。移动过程中必须始终保持这个规律。

汉诺塔程序用到了递归程序,大致的 3 个逻辑步骤是:

  1. 把 source 上面的 n - 1 个盘子移到 intermediate 。
  2. 把 source 最底下的盘子移到 dest 。
  3. 把 intermediate 的 n - 1 个盘子移到 dest。

对汉诺塔的讲解,可参看清华大学郑莉教授的 C++ 课程: https://www.bilibili.com/video/BV1hv411g7Vu


源码

源码如下。其中用到 std::stack 数据结构,最符合汉诺塔的“后进先出”要求。

// 该程序展示汉诺塔 hanoi tower 游戏。
#include <iostream>
#include <stack>
#include <string>// 该函数用于把每个 tower 中的盘子展示出来。
void show_tower(std::stack<std::string> tower, std::string tower_name) {if (tower.empty()) {std::cout<< tower_name  << " is empty." << std::endl;} else {std::cout << "\nshowing: " << tower_name << std::endl;unsigned plates = tower.size();for (std::size_t i = 0; i < plates; ++i) {std::cout << "tower[" << i  << "]= " << tower.top() << std::endl;tower.pop();  // 删除顶部的盘子。}}
}// 把 source 最上面的盘子移到 dest 。
void move_one_plate(std::stack<std::string>& source, std::stack<std::string>& dest) {dest.emplace(source.top());  // emplace 比 push 更高效。source.pop();  // 删除 source 最顶部盘子的记录。
}// 汉诺塔程序把 n 个圆盘从 source 塔移到 dest 塔,可以借助 intermediate 作为过渡塔。
void hanoi(unsigned n, std::stack<std::string>& source, std::stack<std::string>& dest, std::stack<std::string>& intermediate) {  // 1. 设置递归程序的停止条件 baseline 。if (n == 1) {  // 只有一个盘子时,直接从 source 移到 destmove_one_plate(source, dest);} else {  // 2. 把 source 上面的 n - 1 个盘子移到 intermediate hanoi(n - 1, source, intermediate, dest);// 3. 把 source 最底下的盘子移到 dest move_one_plate(source, dest);// 4. 把 intermediate 的 n - 1 个盘子移到 dest。hanoi(n - 1, intermediate, dest, source);}
}int main() {std::stack<std::string> tower_source;  // 压入 5 个盘子进行示例。tower_source.emplace("plate_500");  // emplace 比 push 更高效。tower_source.emplace("plate_400");tower_source.emplace("plate_300");tower_source.emplace("plate_200");tower_source.emplace("plate_100");std::stack<std::string> tower_intermediate;std::stack<std::string> tower_dest;show_tower(tower_source, "tower_source");  show_tower(tower_intermediate, "tower_intermediate");  show_tower(tower_dest, "tower_dest");  hanoi(tower_source.size(), tower_source, tower_dest, tower_intermediate);std::cout << "\nafter hinoi function " << std::endl;show_tower(tower_source, "tower_source");  show_tower(tower_intermediate, "tower_intermediate");  show_tower(tower_dest, "tower_dest");  return 0;
}

—————————— 本文结束 ——————————


文章转载自:

http://Z7pFc2vF.chbcj.cn
http://mIL32nHm.chbcj.cn
http://AnXCWThK.chbcj.cn
http://omsW0Ctw.chbcj.cn
http://hubierQS.chbcj.cn
http://mJWYzOq8.chbcj.cn
http://IZeFMxM6.chbcj.cn
http://QI23ZqrT.chbcj.cn
http://3IfQlq7z.chbcj.cn
http://fbC2KNFc.chbcj.cn
http://IM5QjzJk.chbcj.cn
http://40YD3YYq.chbcj.cn
http://7mQQ6SPq.chbcj.cn
http://VzyR5Ygu.chbcj.cn
http://WTCCCjPm.chbcj.cn
http://PKEzaZsj.chbcj.cn
http://gtv6CvWv.chbcj.cn
http://zOQGoGg6.chbcj.cn
http://SL47fc5d.chbcj.cn
http://c611dT4a.chbcj.cn
http://py4bKGBX.chbcj.cn
http://g5EKroX8.chbcj.cn
http://nPi4kf0W.chbcj.cn
http://lPD3ufTB.chbcj.cn
http://HTrltTfB.chbcj.cn
http://40E2RvOI.chbcj.cn
http://Omkr17KR.chbcj.cn
http://8bvfQXpV.chbcj.cn
http://rr8cFP06.chbcj.cn
http://lrq3YfR0.chbcj.cn
http://www.dtcms.com/wzjs/742985.html

相关文章:

  • 网站建设方案产业重庆网站建设定制
  • 网站内容管理系统下载wordpress标签插件下载
  • 湘潭网站建设哪些公司wordpress页面编辑教程视频
  • 深圳网站建设方案维护百度上如何做企业网站
  • 哪里有零基础网站建设教学公司宁波万华建设
  • 徐州祥云做网站wordpress 主题 demo
  • 网站服务器租用年度价格昆明网站建设制作
  • 网站备案号的链接mx主题 wordpress
  • 网站域名缴费零基础怎么做网站
  • 网站后台编辑器无法显示深圳网站建设 响应式设计开发
  • 福建省建设执业注册与管理中心网站下载空间大的网站建设
  • 大型移动网站建设破解版软件下载网站
  • 微站是什么意思怎么做抽奖网站
  • 网站经营性质 上app下载
  • 有哪些专门做写字楼的网站南京旅游网站建设公司
  • 汕头行业网站wordpress 数据导入
  • 金融商城快捷申请网站模板下载佛山新网站建设方案
  • 免费网站建站塔山双喜大麦网的网站建设
  • 电子报 网站开发营销型网站代理
  • 内部网站建设依据文件快捷的赣州网站建设
  • 相册管理网站模板下载失败html购物网站源码
  • 网站打开不对wordpress二级目录创建
  • 网站建设和网络优化苏州网站建设中心
  • 做网站宣传多少钱网站推广途径和要点
  • 建设好的网站怎么分享网站建设改版升级
  • 网站如何进行品牌建设轻网站怎么建立
  • 长春高端网站建设网站适配移动端和PC端
  • 织梦修改网站主页10个网站 云主机需求
  • 现在花钱做那个网站好呀网站的建设维护推广
  • 网站建设seo需求文档如何建立属于自己的网站