刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

编程实现:

一条笔直的公路沿途有N(2≤N≤100)个充电站,包含起点和终点各一个。小明驾驶电动汽车要从公路的起点到达终点。

已知电动汽车充满电后可行驶的里程数D(10≤D≤10000),及N个充电站每相邻的两个充电站之间的距离,并且小明在起点第一次给电动汽车充满电。请帮助小明计算出最少充电几次才能从起点到达终点(需包含起点的第一次充电)。

注意

1)到达终点后不需要再充电;

2)每次充电都要充满。

例如:D = 10,N = 7,7个充电站之间的距离依次为1,3,6,8,1,4,最少需要充电3次。

第一次充电在起点(第1个充电站);

第二次充电在第4个充电站(此时行驶里程为10,刚好电量耗尽);

第三次充电在第6个充电站(此时在第二次充满电后行驶了9,剩余电量只能行驶1,距离下一充电站的距离为4,所以必须在此充电站充电)。

输入描述:

第一行输入两个正整数D(10≤D≤10000)和N(2≤N≤100),分别表示电动汽车充满电后可行驶的里程数和公路沿途充电站的个数,正整数之间以一个空格隔开

第二行输入N-1个正整数(1≤正整数≤100000),依次表示相邻两个充电站之间的距离,正整数之间以一个空格隔开

输出描述:

输出一个整数,表示电动汽车从公路的起点到达终点最少充电的次数,如果不能到达终点输出-1(需包含起点的第一次充电)


样例输入:

10 7
1 3 6 8 1 4

样例输出:

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```pythonN, D = map(int, input().split())distances = list(map(int, input().split()))total_distance = 0charge_times = 1for i in range(N-1):total_distance += distances[i]if total_distance > D:charge_times += 1total_distance = distances[i]if total_distance < D:print(-1)else:print(charge_times)```

解析:

【喵呜刷题小喵解析】:

首先,我们需要读取输入的两个整数D和N,以及N-1个整数,分别表示电动汽车充满电后可行驶的里程数、公路沿途充电站的个数和相邻两个充电站之间的距离。

然后,我们初始化总行驶距离total_distance为0,充电次数charge_times为1。

接着,我们遍历所有的充电站,累加相邻两个充电站之间的距离到total_distance中。如果total_distance超过了D,说明电动汽车已经不能行驶到下一个充电站了,需要充电。此时,我们将charge_times加1,并且将total_distance重置为下一个充电站的距离。

最后,我们检查电动汽车是否能行驶到终点。如果不能,我们输出-1,否则输出charge_times。

样例输入中,D=10,N=7,充电站之间的距离依次为1,3,6,8,1,4。电动汽车充满电后可行驶的里程数为10,总行驶距离为1+3+6+8+1+4=23,超过了10,所以需要在第4个充电站和第6个充电站之间充电。因此,最少需要充电3次。
创作类型:
原创

本文链接:编程实现: 一条笔直的公路沿途有N(2≤N≤100)个充电站,包含起点和终点各一个。小明驾驶电动汽车

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share