问答题
[说明]
某旅馆共有N间客房。每间客房的房间号、房间等级、床位数及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中。房间等级值为1、2或3。房间的状态值为0(空闲)或1(占用)。客房是以房间(不是床位)为单位出租的。
本算法根据几个散客的要求预订一间空房。程序的输入为人数M、房间等级要求R(R=0表示任意等级都可以)。程序的输出为所有可供选择的房间号。
问答题
假设当前该旅馆各个房间的情况如下表所示。当输入M=4,R=0时,该算法的输出是什么?
当前该旅馆各个房间的情况
|
|
序号i
|
ROOM
|
RANK
|
NBED
|
STATUS
|
|
1
|
101
|
3
|
4
|
0
|
|
2
|
102
|
3
|
4
|
1
|
|
3
|
201
|
2
|
3
|
0
|
|
4
|
202
|
2
|
4
|
1
|
|
5
|
301
|
1
|
6
|
0
|
问答题
如果等级为R的房间每人每天的住宿费为RATE(R),RATE为数组。为使该算法在输出每个候选的房间号RM(J)后,再输出这批散客每天所需的总住宿费DAYRENT(J),图中B所指框中的最后处应增加什么处理?
【正确答案】
【答案解析】RATE(RANK(I)) * M→DAYRENT(J)或M * RATE(RANK(I))→DAYRENT(J)
问答题
如果限制该算法最多输出K个可供选择的房间号,则在图中α所指的判断框应改成什么处理?
【正确答案】
【答案解析】I>N OR J=K
其中,I>N也可以写成I=N+1;J=K也可以写成J≥K。