文章目录

  • 1. 问题描述
  • 2. 解题思路
  • 3. 实现代码
  • 4. 测试结果

1. 问题描述

已知汽车的油箱额定里程,到目的地的路途中各加油站距起点的距离,求如何加油,让加油的次数最少。

2. 解题思路

  • 每次出发前检查下一个加油站有多远,车子能不能跑得到
  • 能到,就不加油
  • 不能到,就加油
  • 如果加了油,还不能到,说明不能到达目的地

3. 实现代码

/*** @description: 已知路上各加油站的距离,求最少加油次数(贪心)* @author: michael ming* @date: 2019/7/3 18:07* @modified by: */
#include <iostream>
#define N 9     //加油站个数
#define oil_volume 10    //油箱额定可跑里程
using namespace std;
class Car
{public:int s;//行驶里程int carmileage;//油箱可跑里程Car():s(0),carmileage(oil_volume){}void fillgas(){carmileage = oil_volume;//加油,油箱加满}
};
int main()
{Car tesla;int gasStation[N] = {10,20,35,40,50,65,75,85,100};//加油站距离起点距离int dist, i = 0;bool fill = true;//加油了吗,默认加满了油出发cout << "请输入目的地的距离:";cin >> dist;if(tesla.carmileage >= dist)cout << "无需加油," << "剩余的汽油可跑"<< tesla.carmileage-dist << "km。" << endl;else{for(i = 0; i < N; ++i){if(tesla.s + tesla.carmileage >= gasStation[i])//车子可开到i加油站{tesla.carmileage -= gasStation[i]-tesla.s;//油箱变少tesla.s = gasStation[i];//里程更新fill = false;//没有加油if(tesla.s >= dist){cout << "到达终点,剩余的汽油可跑"<< tesla.carmileage+tesla.s-dist << "km。" << endl;break;}}else if(tesla.s + tesla.carmileage < gasStation[i] && !fill){//车子没有加油,到不了i号加油站,需要在i-1站加油i--;//i-1站tesla.fillgas();//加油fill = true;//标记加过油cout << "在" << gasStation[i] << "km处加油!" << endl;}else//车子前一站加过油,还到不了i号加油站,不能到达目的地{cout << "不能到达目的地,距离目的地" << dist-(tesla.s+tesla.carmileage)<< "km,距离下一个加油站" << gasStation[i]-(tesla.s+tesla.carmileage)<< "km,请呼叫救援!"<< endl;break;}}if(tesla.s < dist && i >= N)//开过了所有的加油站 还没到cout << "不能到达目的地,后面没有加油站,距离目的地"<< dist-(tesla.s+tesla.carmileage) << "km,请呼叫救援!"<< endl;}return 0;
}

4. 测试结果

int gasStation[N] = {10,20,35,40,50,65,75,85,100};//加油站距离起点距离
#define oil_volume 10    //油箱额定可跑里程

#define oil_volume 20    //油箱额定可跑里程


贪心应用--汽车加油次数问题相关推荐

  1. java 汽车加油问题_贪心算法 汽车加油问题 | 学步园

    / //一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效      // // // n和k个加油站位置,编程计算最少加油次数.并证明算法能产生一个最优解.    // //要求:   ...

  2. C++贪心实现汽车加油问题

    一.实验目的 1.掌握基于贪心的算法求解汽车加油问题的原理和贪心性质的证明. 2.掌握汽车加油问题贪心算法正确性的推导过程和设计原理. 3.掌握基于贪心的算法汽车加油问题函数的具体步骤. 4.具备运用 ...

  3. POJ2431贪心(最少加油次数)

    题意:        给一个终点,然后给你一个卡车距离终点的距离,还有其他个加油站距离终点的距离,然后每走一个单位距离要花费一个单位油,卡车的邮箱是无限大的,而每个加油站的油量是有限的,整个路径是一个 ...

  4. 算法设计与分析——贪心算法——汽车加油问题

    汽车加油问题:一辆汽车加满油后可行驶n公里,旅途中有若干个加油站,两加油站间距离不超n 公里,起点离第一个加油站距离及最后一个加油站离终点距离也不超过n公里.算法给出应在哪些加油站停靠加油,使沿途加油 ...

  5. 贪心算法——汽车加油问题

    一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少. 输入:第1行两个正整数n和k,表示汽车加满油后可行驶n 公里,且旅途中有k个加油 ...

  6. 「贪心算法」虚拟汽车加油问题

    > 问题描述 一辆虚拟汽车加满油后可行驶 n km.旅途中有若干加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少,计算最少加油次数. > 数据输入 终端输入正整数 ...

  7. 贪心算法之汽车加油问题

    场景一.一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.应在哪些加油站停靠加油,使沿途加油次数最少. 汽车行驶过程中,不到万不得已不加油,应走到自己能走到并且离自己最远的那个加油站,在那个站加满油 ...

  8. 汽车加油问题(贪心算法)

    1.问题描述:一辆汽车加满油后可行驶nkm.旅途中有若干加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少. 算法设计:对于给定的n和k个加油站位置,计算最少加油次数. 数据输入 ...

  9. 汽车加油问题--贪心算法

    一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少.对于给定的n(n <= 5000)和k(k <= 1000)个加油站 ...

最新文章

  1. vue项目使用encode_Vue项目中使用xlsx-style导出有格式的表格
  2. Linux修改文件及文件夹权限
  3. eBay测试老兵的修炼之道:如何从测试“小工”到测试“专家”?
  4. SQL SERVER大话存储结构:数据库数据文件
  5. T-SQL :SQL Server 定义数据完整性 5大约束
  6. Java并发编程实战~volatile
  7. 【数字逻辑设计】Logisim构建四位行波进位加法/减法器
  8. (转) POJO和javabean的异同
  9. Linux gcc编译简介、常用命令
  10. 谷粒商城:16.商城业务 — 首页
  11. wince车机工厂模式德赛西威_求助:winCE 车机救砖问题,进BootLoader,或者TTL调试问题~~...
  12. 六轴传感器+卡尔曼滤波+一阶低通滤波
  13. GHOSTXP_SP3电脑公司装机特别版 V30.0[NTFS]
  14. Tropical Cyclone Intensity Estimation
  15. python os.walk如何不遍历隐藏文件,Python os.walk() 遍历出当前目录下的文件夹和文件...
  16. 三角网格剖分工具 Triangle 安装及使用
  17. 40 岁的时候,我转行成为一名前端开发者!
  18. UVALive 4850 Installations——思维
  19. 一线城市房价集体下跌暗藏啥玄机?
  20. LeetCode 热题 HOT — 字母异位词分组

热门文章

  1. 数据结构:栈和列之如何用两个队列实现一个栈?两个栈实现一个队列?
  2. c++远征之模板篇——静态数据成员,静态成员函数
  3. Python中的xxx+=xxx和xxx=xxx+xxx一些区别及执行过程
  4. 解决python中遇到的乱码问题
  5. [systemd]systemd使用
  6. bzoj4639 博士的选取器
  7. php 对象赋值后改变成员变量影响赋值对象
  8. 限制RICHTEXTBOX的输入的范围
  9. (jquery插件)打造百分比动态色彩条
  10. 基于Silverlight+WCF的SAAS开发平台TAP(二)之核心技术