关闭

汽车加油问题

标签: 汽车加油问题贪心算法
482人阅读 评论(0) 收藏 举报
分类:

一辆汽车加满油后可以行驶n公里,旅途中有加油站,设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。

测试用例:

 7 7 (n k) 

1 2 3 4 5 1 6 6(第k个加油站与第k-1个加油站之间的距离,其中第一个代表起点,最后一个代表终点。) 

 输出: 4(最少加油次数)

#include <stdio.h>
#define n 7  //汽车加满油后可以行驶n公里
#define k 7   //加油站的个数

int main(){
	int a[n+1]={1,2,3,4,5,1,6,6};  //相邻加油站之间的距离
	int count=0;    //加油次数
	int start=0;   //初始距离

	for(int i=0; i<=k; i++)
	{
		start+=a[i];   
		if(start>n)   //如果行驶距离大于汽车可以行驶的最大距离
		{
			count++;   //必须加油一次
			start=a[i];   //起始距离等于当前两个加油站之间的距离
		}
	}

	printf("%d\n",count);

    return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6563次
    • 积分:396
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:1篇
    • 译文:1篇
    • 评论:0条