[算法题] 汉诺塔问题

简介: 问题描述三个柱子,起初有若干个按大小关系顺序安放的盘子,需要全部移动到另外一个柱子上。移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。移动次数: f(n)=2n -1 解法思路使用递归算法进行处理。
问题描述
三个柱子,起初有若干个按大小关系顺序安放的盘子,需要全部移动到另外一个柱子上。移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
移动次数: f(n)=2n -1

 

解法思路

使用递归算法进行处理。

 

汉诺塔的算法大概有3个步骤:

(1)把a上的n-1个盘通过c移动到b。

(2)把a上的最下面的盘移到c。

(3)因为n-1个盘全在b上了,所以把b当做a重复以上步骤就好了。

在网上找到一个3阶的汉诺塔递归过程示意图,参考一下。

 

 

 

 

代码实现

 

代码

#include <stdio.h>

int step =  0;
void hanoi( int n,  char start,  char assist,  char end){
     if(n>= 1){
        hanoi(n- 1, start, end, assist);
        printf( " move %d from %c --> %c \n ", n, start, end);
        step++;
        hanoi(n- 1, assist, start, end);
    }
}

int main(){
     int n;
    scanf( " %d ", &n);
    hanoi(n,  ' A '' B '' C ');
    printf( " Totally move %d steps\n ", step);
     return  0;
}

 

运行结果

Please input the disk num:
3
move 1 from A --> C
move 2 from A --> B
move 1 from C --> B
move 3 from A --> C
move 1 from B --> A
move 2 from B --> C
move 1 from A --> C
Totally move 7 steps

 

目录
相关文章
uniapp项目实践第四章:如何安装uni-ui组件库
uniapp项目实践第四章:如何安装uni-ui组件库
1308 0
|
10月前
|
供应链 安全 BI
安全库存怎么定?仓库看下限,采购看交期,销售看动销
安全库存看似简单,实则涉及仓库、采购、销售多方协作。本文详解如何科学设定安全库存,平衡各方需求,避免断货或积压,提升企业运营效率。
|
9月前
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
1069 0
|
编解码 数据安全/隐私保护
无影云电脑产品使用黑神话悟空之游戏画面卡顿的推荐设置
这段内容介绍了无影云电脑在运行《黑神话:悟空》时遇到画面卡顿等问题的推荐设置与解决方案,包括调整分辨率和显示模式等方法,并提供了多个具体问题的详细解答及参考链接,帮助用户优化游戏体验。
|
设计模式 SQL 前端开发
Java swing+MySQL实现的学生信息管理系统课程设计
这款Java swing实现的学生信息管理系统和jsp版本的功能很相似,简单的实现了班级信息的增删改查,学生信息的增删改查,数据库采用的是mysql,jdk版本不限,是Java学习者学习参考非常好的一个小项目,下面我们来看看如何运行。
|
Windows
telnet不是内部或外部命令
telnet不是内部或外部命令
672 0
|
存储 弹性计算 自然语言处理
基础大模型 vs 应用大模型
基础大模型(如GPT-3、BERT等)通过大量通用数据训练,具备强大的泛化能力。应用大模型则在此基础上进行微调,针对特定任务优化。两者均将知识编码在参数中,而非直接存储原始数据,实现“自然留存”。阿里云提供多种大模型和服务,欢迎体验。
583 0
|
Python C++ 前端开发
PyTorch 2.2 中文官方教程(十一)(1)
PyTorch 2.2 中文官方教程(十一)
517 1
PyTorch 2.2 中文官方教程(十一)(1)
|
存储 Kubernetes 网络协议
K8S(三):Pod入门基本概念,网络和存储共享,Infra/Pause容器
Pod入门基本概念,网络和存储共享,Infra/Pause容器
2885 0
K8S(三):Pod入门基本概念,网络和存储共享,Infra/Pause容器
|
存储 缓存 监控
FusionStorage原理及组件
FusionStorage原理及组件
906 0

热门文章

最新文章