测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A41228. 加油问题编程实现:小猫打算在“五一”假期骑摩托车自驾游,摩托车每次加满油后可以行驶100公里,它在自家附近的加油站加满油后就上路了,上路之后还要顺序经过“1号”-“6号”的6个加油站,每个加油站到上一个加油站的距离分别是50、80、39、60、40、32公里。因为“五一”期间各加油站都有很多车要加油,所以小猫希望尽量减少加油的次数。请帮助小猫找出在哪些加油站停靠加油(每次都加满油)才能使得沿途加…

填空题 困难

题目描述

加油问题

编程实现:

小猫打算在“五一”假期骑摩托车自驾游,摩托车每次加满油后可以行驶100公里,它在自家附近的加油站加满油后就上路了,上路之后还要顺序经过“1号”-“6号”的6个加油站,每个加油站到上一个加油站的距离分别是50、80、39、60、40、32公里。因为“五一”期间各加油站都有很多车要加油,所以小猫希望尽量减少加油的次数。请帮助小猫找出在哪些加油站停靠加油(每次都加满油)才能使得沿途加油次数最少。

注意:如果摩托车剩下的油不够行驶到下一个加油站时,就必须要在这个加油路加油了!

具体要求:

1). 创建两个列表,列表“距离”用于存放各个加油站距离的数值,将50、80、39、60、40、32依次添加到列表中;列表“停靠”有6个元素,用于标记在哪个加油站停靠加油。每次点击绿旗时,都要将“停靠”列表中的6个元素初始化为“0”,然后让小猫说“开始出发”2秒。如图1所示:

2). 小猫需要指出应该在哪个加油站停靠加油。例如,小猫需要在第1个加油站加油(因为到第2个加油站还有80公里,而摩托车的油只够再骑50公里了),就让小猫说“在1号加油站停靠加油”2秒,同时将“停靠”列表中的第1个元素值修改为1,然后继续说出下一个需要加油的加油站(见图2),当到达目的地时,让小猫说“到达目的地”2秒,然后程序结束。

赛后判卷时,在裁判修改了列表“距离”中的数值以后,重新点击绿旗后,能够以新的数值重新计算,并让小猫说出合理的停靠加油方案,使得加油的次数最少。

参考答案

评判标准: 10分:符合具体要求1),即点击绿旗后“距离”列表中的各元素依次是50、80、39、0、40、32,“停靠”列表中的各元素值都是0,小猫说“开始出发”2秒; 30分:在10分标准的基础上,符合具体要求2),即小猫正确说出在哪个加油站加油,并且在说出“到达目的地”后,“停靠”列表的每一个数值均正确; 60分:在30分标准的基础上,符合具体要求3)。即赛后判卷时,在裁判修改“距离”的数值后,能够以新的数值计算新的停靠加油方案,使得加油的次数最少。 思路分析 本题的逻辑其实很简单,就是每到一个加油站,都需要判断摩托车里剩余的油能否确保行驶到下一个加油站,如果够的话,就不用加油,继续行驶,否则的话,就需要在这一站加油。 很显然,除了题目给出的两个列表,我们需要使用两个变量,一个用来表示几号加油站,从第1站开始直到第6站,另一个则是剩余油量,这是我们判断是否加油的重要条件。

答案解析

上一题 下一题