R7-3 汉诺(Hanoi)塔问题
古代某寺庙中有一个梵塔,塔内有3个座A、B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上。有一个和尚想把这64 个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大盘不能压在小盘上。现要求用程序模拟该过程,输入一个正整数n,代表盘子的个数,编写函数
void hanoi(int n,char a,char b,char c)
其中,n为盘子个数,从a座到b座,c座作为中间过渡,该函数的功能是输出搬盘子的路径。
输入格式:
输入在一行中给出1个正整数n。
输出格式:
输出搬动盘子路径。
输入样例:
3
输出样例:
a-->b
a-->c
b-->c
a-->b
c-->a
c-->b
a-->b
1 #include <stdio.h>
2
3 void hanoi(int n, char a, char b, char c);
4
5 int main()
6 {
7 int n;
8 char a = 'a', b = 'b', c = 'c';
9
10 scanf("%d", &n);
11
12 hanoi(n, a, b, c);
13
14 return 0;
15 }
16
17 void hanoi(int n, char a, char b, char c)
18 {
19 if(n == 1){
20 printf("%c-->%c\n", a, b); //递归截止条件
21 }else{
22 n--;
23 hanoi(n, a, c, b);
24 printf("%c-->%c\n", a, b);
25 hanoi(n, c, b, a);
26 }
27 }
R7-3 汉诺(Hanoi)塔问题的更多相关文章
- ACM1997_汉诺栽塔VII
#include <stdio.h> #include <iostream> #include <queue> #include <stdlib.h> ...
- 汉诺塔(Hanoi)——小小算法
传送门: 袁咩咩的小小博客 汉诺(Hanoi)塔源于古印度,是非常著名的智力趣题,大意如下: 勃拉玛是古印度的一个开天辟地的神,其在一个庙宇中留下了三根金刚石的棒,第一 根上面套着64个大小不一的圆形 ...
- [CareerCup] 3.4 Towers of Hanoi 汉诺塔
3.4 In the classic problem of the Towers of Hanoi, you have 3 towers and N disks of different sizes ...
- 《hanoi(汉诺塔)问题》求解
//Hanoi(汉诺)塔问题.这是一个古典的数学问题,用递归方法求解.问题如下: /* 古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上. 有一个老和 ...
- 汉诺塔-Hanoi
1. 问题来源: 汉诺塔(河内塔)问题是印度的一个古老的传说. 法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵 ...
- 汉诺塔 Hanoi Tower
电影<猩球崛起>刚开始的时候,年轻的Caesar在玩一种很有意思的游戏,就是汉诺塔...... 汉诺塔源自一个古老的印度传说:在世界的中心贝拿勒斯的圣庙里,一块黄铜板上插着三支宝石针.印度 ...
- [js - 算法可视化] 汉诺塔(Hanoi)演示程序
前段时间偶然看到有个日本人很早之前写了js的多种排序程序,使用js+html实现的排序动画,效果非常好. 受此启发,我决定写几个js的算法动画,第一个就用汉诺塔. 演示地址:http://tut.ap ...
- 用递归方法解决汉诺塔问题(Recursion Hanoi Tower Python)
汉诺塔问题源于印度的一个古老传说:梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.梵天命令婆罗门把圆盘按大小顺序重新摆放在另一根柱子上,并且规定小圆盘上不能放 ...
- 汉诺塔hanoi
问题描述: 有一个梵塔,塔内有三个座A.B.C,A座上有诺干个盘子,盘子大小不等,大的在下,小的在上(如图). 把这些个盘子从A座移到C座,中间可以借用B座但每次只能允许移动一个盘子,并且在移动过程中 ...
- 汉诺塔问题(The Tower of Hanoi)的递归算法与非递归算法
非递归算法: 根据圆盘的数量确定柱子的排放顺序: 若n为偶数,按顺时针方向依次摆放 A B C: 若n为奇数,按顺时针方向依次摆放 A C B. 然后进行如下操作: (1)按顺时针方向把圆盘1从现在的 ...
随机推荐
- tinyriscv仿真环境
环境要求:iverilog gtkwave 在sim目录新建makefile,内容如下. BIN=rv32ui-p-jal all: hexf comp vvp hexf: cp ../tests/i ...
- EF core 反向工程 连接字符串
Scaffold-DbContext 'Data Source=.;Initial Catalog=DB;User ID=sa;Password=1;Integrated Security=true; ...
- openssl用法详解 【转】
原文: http://www.178linux.com/48764 OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 l ...
- VUE学习-自定义指令
自定义指令 有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令. <div id="directive-demo"> <input ...
- Pytest 固件
一.固件使用背景 在执行测试用例时,我们常常需要在测试用例执行的前后去完成一些额外的操作.例如针对于 Web 测试,在用例执行前需要打开浏览器,完成用户登录等一系列前置操作:在用例执行完成后,要清除浏 ...
- 菜狗记录pycharm使用问题
1.
- GPS授时仪(网络校时服务器)成功投运攀枝花市中西医结合医院
GPS授时仪(网络校时服务器)成功投运攀枝花市中西医结合医院 技术交流:岳峰 15901092122 论述当下网络时间同步的重要性 北京华人开创公司 技术交流15901092122 概述:电脑时间走时 ...
- 最后的 SPRING
其核心JAR包spring-web-5.2.0.RELEASE.jar和spring-core-5.2.0.RELEASE.jar的大小均为1.4MB左右 基于工厂模式实现对象的创建 添加了国际化.事 ...
- java开发微信APP支付
直接上代码 String nonce_str=WXPayUtil.generateNonceStr(); //WXPayUtil微信自己有的,自己下载,这里是生成随机字符串,下载地址(下载java的里 ...
- 19JS输出杨辉三角
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...