题目信息

题目类型
练习
题目年份
2024
题目题型
编程题
关 键 词
汉诺塔问题

题目题干

汉诺塔问题

【题目描述】

约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,709,551,6156fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万年。我们仅能找出问题的解决方法并解决较小N值时的汉诺塔,但很难用计算机解决64层的汉诺塔。6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

假定圆盘从小到大编号为1, 2, ...6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输入】

输入为一个整数(小于20)后面跟三个单字符字符串。6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

整数为盘子的数目,后三个字符表示三个杆子的编号。6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输出】

输出每一步移动盘子的记录。一次移动一行。6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

每次移动的记录为例如 a->3->b 的形式,即把编号为3的盘子从a杆移至b杆。6fi100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输入样例】

2 a b c

【输出样例】

a->1->c
a->2->b
c->1->b

答案解析

相关题目

放苹果【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)
汉诺塔问题【题目描述】约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一
爬楼梯【题目描述】树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一
用于类运算的运算符通常都要重载。但有两个运算符系统提供默认重载版本,它们是(    )。 (A)->和. (B)++和-- (C)=和& ​​​​​​​(D)new和delete
设op表示要重载的运算符,那么重载运算符的函数名是(    )。 (A)operator op (B)op (C)函数标识符 ​​​​​​​(D)函数标识符op
运算符函数是一种特殊的(    )或友元函数。 (A)构造函数 (B)析构函数 (C)成员函数 ​​​​​​​ (D)重载函数
在下列关于运算符重载的描述中,(    )是正确的。 (A)可以改变参与运算的操作数个数 (B)可以改变运算符原来的优先级 (C)可以改变运算符原来的结合性 ​​​​​​​(D)不能改变原运算符的语义
在下列运算符中,不能重载的是(    )。 (A)! (B)sizeof (C)new (D)delete
阅读程序,其中s::connect函数实现字符串连接。把这个成员函数改写为重载+运算符函数,并修改main函数的对应代码,使其正确运行。 #include <iostream> #incl
当一元运算符的操作数,或者二元运算符的左操作数是该类的一个对象时,重载运算符函数一般定义为(    )。 (A)构造函数 (B)析构函数 (C)成员函数 ​​​​​​​ (D)友元函数

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢