- 博客(1)
- 资源 (1)
- 收藏
- 关注

原创 MIS操作系统复习题
在计算机系统中配置操作系统的主要目的是()A.提高系统的运行速度B.合理组织系统的工作流程,以提高系统吞吐量C.提高系统资源利用率D.增强计算机系统的功能正确答案:C允许多个用户以交互方式使用计算机的操作系统称为()A.分时操作系统B.批处理操作系统C.实时操作系统D.多处理机操作系统正确答案:A在OS中采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的()A.利用率B.灵活性C.可靠性D.兼容性正确答案:A推动分时系统形成和发展的动力是()A.提高系统的运行
2020-07-07 13:25:23
19797
锁链 非递归做法C++.zip
【问题描述】
一个国王因为听信谗言将一个无辜的数学家关进了监狱。虽然事后发现确属冤枉,但碍于面子,国王不肯认错。为了挽回,于是国王决定用Bytish锁链将其锁在墙上。这种锁链由n(10≤n≤1000)个固定在墙上的铁环和铁棒组成。由于环不是都套在棒上,要想把整副锁链取下是十分困难的。数学家必须自己通过不断取下和套上铁环最终将所有铁环都取下才能获得自由。取下或套上铁环的规则是:
铁环从1、2、……、n依次编号。
一次只能把一个环取下或套上。
编号为1的环无论何时都能取下或套上。
如果编号为1、……、k-1(1≤k≤n)的环已经从棒上取下,并且k环套在棒上,则可以取下或套上编号为k+1的环。
写一个程序,读入锁链描述并计算从棒上取下所有环所需的最少步数。
【基本要求】
显然,可以运用递归的方法解决此问题。但是你能否找到一个非递归算法呢?
【输入输出】
输入:环的总数n。
输出:为尽量体现程序输出结果的层次,要求按照从n、n-1、n-2、……、1的顺序,将移除掉n号环的全部过程作为一个段落输出,然后将移除n-1号环的全部过程也作为一个段落输出,其余依此类推。
【实现提示】
显然,通过枚举前i个环的解锁过程可以从中找出解题的思路。
当n=1时,直接移除即得解。
当n=2时,显然不能先移出1环,再移除2环。因为根据约束条件,必须1环在棒上才能移除2环。因此移除的步骤应该是先2环,再1环。
当n=3时,移除3环的条件是2环在,1环卸,于是可以先移除1环,然后移除3环,然后套上1环,然后移除2环和1环。
当n≥4的情形请自行推导。
2020-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人