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

网站制作多少深圳百度推广优化

网站制作多少,深圳百度推广优化,带积分的网站建设,制作好的网站🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 分析 2.1 图解 2.2 代码解析 3. 完整代码 3.1 运行截图 4. 小结 1. 题目 汉诺塔问题是一个经典的递归问题,源自一个古老的印度传…

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

目录

 1. 题目

2. 分析

2.1 图解

2.2 代码解析

3. 完整代码

 3.1 运行截图

4. 小结


 1. 题目

汉诺塔问题是一个经典的递归问题,源自一个古老的印度传说。在这个问题中,我们有三根柱子和一系列不同大小的圆盘,这些圆盘最初按大小顺序堆叠在一根柱子上。目标是将所有圆盘移动到另一根柱子上,遵循两个规则:一次只能移动一个圆盘,且在移动过程中较大的圆盘不能放在较小的圆盘上面。

2. 分析

2.1 图解

首先我们不能一口吃下去,我们要一步一步来看

  • 如果只有一个盘子     (n == 1) 

 

那么直接 A --> C 就行了

  •  如果只有两个盘子     (n == 2)

 A --> B   A --> C  B --> C

这是基本步骤,显然发现不了什么规律

  • 如果只有三个盘子     (n == 3)

 

 都存在特殊情况:(n - 1)个盘子在 B 柱子上,最大的盘子在 C 柱子上,把(n - 1)个盘子看作整体(借助 A 柱子)放到 C 柱子上

  • 如果只有四个盘子     (n == 4)

 

不管怎么移动, 都存在特殊情况:(n - 1)个盘子在 B 柱子上,最大的盘子在 C 柱子上,把(n - 1)个盘子看作整体(借助 A 柱子)放到 C 柱子上

那这时候,递归规律就出来了 

 一句话:先把 A 柱子上(n - 1)个盘子放在 B 柱子上,在将 A柱子上第 n 个盘子放在 C 柱子上,然后将 B 柱子上(n - 2)个盘子放在 A 柱子上,在讲 B 柱子上第 (n - 1)个盘子放在 C 柱子上.....依次递归下去

2.2 代码解析

先定义一个方法用来打印运动过程

    public static void move(char p1, char p2) {System.out.print(p1 + " -> " + p2 + " ");}

在定义方法进行递归

public static void Htower(int n, char pos1, char pos2, char pos3) {if(n == 1) {move(pos1, pos3);return ;}Htower(n - 1, pos1, pos3, pos2);move(pos1, pos3);Htower(n - 1, pos2, pos1,pos3);}

这里进行代码解释

  • pos 1 ,pos 2 ,pos 3 分别代表   A      B      C  (柱子)
  • if() 语句表示有一个盘子的话,只需盘子运动一次即可
  • pos 1 :盘子的起始柱子
  • pos 2 :盘子的借助的柱子(中转位置)
  • pos 3 :盘子的终点位置(最终位置)
  • 第六行代码意思是-> 先将 A 柱子的(n - 1)个盘子借助 C 柱子移到 B 柱子上
  • 第七行代码意思是-> 在将 A 柱子剩的一个最大的盘子移到 C 柱子上
  • 第八行代码意思是->将 ​​B 柱子的(n - 1)个盘子借助 A 柱子移到 C 柱子上

3. 完整代码

public class Test {public static void move(char p1, char p2) {System.out.print(p1 + " -> " + p2 + " ");}/** pos1:起始位置* pos2:中转位置* pos3:终点位置* */public static void Htower(int n, char pos1, char pos2, char pos3) {if(n == 1) {move(pos1, pos3);return ;}Htower(n - 1, pos1, pos3, pos2);move(pos1, pos3);Htower(n - 1, pos2, pos1,pos3);}public static void main(String[] args) {// 用多组数据检测Htower(1,'A', 'B', 'C');System.out.println();Htower(2,'A', 'B', 'C');System.out.println();Htower(3,'A', 'B', 'C');System.out.println();Htower(4,'A', 'B', 'C');System.out.println();Htower(5,'A', 'B', 'C');System.out.println();}}

 3.1 运行截图

4. 小结

以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持! 

http://www.ds6.com.cn/news/48473.html

相关文章:

  • 做任务领取礼品的网站网站seo检测工具
  • 建筑网站资料排行榜高端营销型网站建设
  • 做网站什么前端框架方便微信朋友圈广告投放收费标准
  • 做a图片视频在线观看网站针对大学生推广引流
  • 大连无网站的企业有哪些如何推销产品给客户
  • 如何建立自己个人网站百度2022新版下载
  • 人才招聘网站怎么做国际最新新闻热点事件
  • 第寒网站建设品牌如何做推广
  • 网站建设营销方案百度搜索风云榜电视剧
  • 怎么在网站中搜索关键字营销策划的十个步骤
  • 唐山哪个公司做网站聊城seo优化
  • 响应式网站建设服务提供商免费模板
  • 网站外的seo公司模板建站
  • 网站开发一般采用什么框架平台推广引流怎么做
  • css做的网站不能往下拉友情链接有用吗
  • h5网站开发哪个好广告推广软文案例
  • wordpress主题修改教程关键字优化
  • 祥云县住房和城乡建设网站品牌推广策划方案案例
  • 南宁seo团队计划英语seo什么意思
  • 医疗设备响应式网站企业营销推广
  • 团购火锅自助网站建设英文seo
  • 嘉兴商城网站开发设计辽宁网站建设
  • 好吃易做的家常菜网站谷歌seo推广公司
  • 做国外网站有哪些网店培训教程
  • 深圳南山企业网站建设报价百度广告业务
  • html5做网站百度财报q3
  • 网站怎么架设大丰seo排名
  • 成都网站建站推广备案域名查询
  • html5网站搭建培训心得体会500字
  • 做个网站费用多少合适vi设计