Tower of Hanoi (汉诺塔问题)
1、question:
hanoi问题:有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所 有圆盘移至C杆:提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须尊循上述两条规则。问:如何移?
2、algorithm:
n=1时,一步:a-->1-->c
n=2时,三步:a-->1-->b;
a-->2-->c;
b-->1-->c;
不断递归,到n=1为止。
3、code:
#include<iostream>
#include<cstdio>
using namespace std;
void hanoi(int n,char a,char b,char c)
{
if(n==1)
cout<<a<<"-->"<<1<<"-->"<<c;
else
{
hanoi(n-1,'a','c','b');
cout<<a<<"-->"<<n<<"-->"<<c;
hanoi(n-1,'b','a','c');
}
}
char a='a',b='b',c='c';
int n;
int main()
{
cin>>n;
hanoi(n,'a','b','c');
return 0;
}
4、running:
Tower of Hanoi (汉诺塔问题)相关推荐
- C++Tower of Hanoi汉诺塔的实现算法(附完整源码)
C++Tower of Hanoi汉诺塔的实现算法 C++Tower of Hanoi汉诺塔的实现算法完整源码(定义,实现,main函数测试) C++Tower of Hanoi汉诺塔的实现算法完整源 ...
- c语言递归求塔移动次数,【C语言】Hanoi(汉诺)塔问题,求移动盘子的步骤(递归法)...
所有的循环算法都可以用递归实现,反之不成立,这足以证明递归的重要性! Hanoi(汉诺)塔问题.古代有一个焚塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在上,小的在下,有一 ...
- Hanoi(汉诺)塔问题
问题描述: Hanoi(汉诺)塔问题.古代有一个梵塔,塔内有3个座A,B,C,开始时A座有n个盘子,盘子大小不等,大的在下,小的在上.有一个老和尚想把这n个盘子,从A座移动到C座,但是每次只允许移动一 ...
- C语言---移盘子----Hanoi(汉诺)塔问题,显示移动盘子的步骤
C语言-移盘子----Hanoi(汉诺)塔问题,显示移动盘子的步骤 在学习递归的过程中,Hanoi(汉诺)塔问题是避开不了的,很多新手在这儿一脸懵. 我们先简单介绍一些Hanoi(汉诺)塔问题到底是个 ...
- 递归算法以及Hanoi(汉诺)塔问题及其详细解释
递归在算法中是非常重要的,可以说几乎所有的循环算法都可以用递归来实现,这足以体现递归的重要性,利用递归的条件一般为一下: 定义是递归的 像有些数学函数就是递归定义的,例如大家熟悉的阶层函数: 2.利用 ...
- Ka的递归编程练习 Part4|Hanoi汉诺塔,双色汉诺塔的也有
1 #include <stdio.h> 2 void hanoi(int s,char a,char b,char c) //a是出发盘,b是中途盘,c是结束盘 3 { 4 if(s== ...
- 1-算法-hanoi汉诺塔问题- 递归
汉诺塔问题用递归解决 问题抽象 递归都是从最原始的地方回溯 到解决这个大问题 Void hanoi(int n,char A,char B,char C) {if(n == 1) move(1,A,C ...
- 递归算法 —— Hanoi汉诺塔游戏
前言 博客主页:干脆面la的主页 gitte链接:干脆面la的gitee仓库 刚学习完递归函数接触汉诺塔问题的时候,汉诺塔问题困扰了我很久.博主花了很长时间理解这道题目,因此整理出了用递归解决汉诺塔问 ...
- 理解 Hanoi 汉诺塔非递归算法
汉诺塔介绍: 汉诺塔(港台:河内塔)是根据一个传说形成的数学问题: 最早发明这个问题的人是法国数学家爱德华·卢卡斯. 传说越南河内某间寺院有三根银棒,上串 64 个金盘.寺院里的僧侣依照一个古老的预言 ...
最新文章
- 关于近期对Lucene.Net应用研究学习的总结
- 025_JDK的hashCode方法
- AI:神经网络调参(数据、层数、batch大小,学习率+激活函数+正则化+分类/回归)并进行结果可视化
- 中的 隐藏鼠标菜单_Mac移动隐藏删除顶部菜单栏图标教程
- 浏览器 user-agent 字符串的故事
- python做大型网站_Python中的大型Web应用:一个好的架构
- thinkPHP学习笔记
- 监督学习:KNN(K-近邻)算法实现手写数字识别的三种方法
- Python批量替换目录下文件后缀脚本实例
- 一个Python练习
- 香港中文大学MMLab期待优秀同学加入~
- php 如何打乱数组顺序,【PHP打乱数组顺序的方法有哪些,这样的程序你真的会写吗】- 环球网校...
- 转:什么是Node.js?
- Spring框架学习---Spring Framework上篇
- Web前端开发技术 HTML、CSS、JavaScript pdf
- PHP对接抖音开发平台接口
- Vue检测web端和移动端,并强制手机横屏
- 【校招VIP】产品思维考察之如何做市场分析
- 如何进入docker 使用root用户的方式
- CE-植物大战僵尸(1)