求解汽车加油问题C++

使用贪心算法设计一个C++程序,确定汽车在途经多个加油站时,最少加油次数以完成旅程。问题中,汽车加满油可行驶d公里,数组a表示各加油站间的距离。算法思路是判断能否到达下一站并继续前进,若不能,则在当前或上一站在能到达的最远站加油。
摘要由CSDN通过智能技术生成

问题描述

已知一辆汽车加满油后可行驶d(如d=7)公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油使加油次数最少。用数组a存放各加油站之间的距离,如a[ ]={2,7,3,6},表示共有4个加油站,起点到1号加油站的距离为2km,1号到2号加油站的距离为7km,2号到3号加油站的距离为3km,3号到4号加油站的距离为6km。

算法思想

贪心法解决,只需要考虑能不能到下一个站的情况下还能到下下个站,如果可以则在下下个站继续判断是否还可以走,如果不可以情况则是(只能经过一个站,并在那个站加油)又或者是经过两个站不能到达第三个站,则在第二个站进行加油。

代码实现

#include<iostream>

using namespace std;

int oilShop[100];
//说明 输出的车站从第一个开始
void solve(int *array , int n)
{
   
  

    int oil = 7;
    for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒜蓉蒸大虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值