一辆汽车加满油后可以行驶n公里,旅途中有加油站,
设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。
测试用例: 7 7 (n k)
1 2 3 4 5 1 6 6(第k个加油站与第k-1个加油站之间的距离,
其中第一个代表起点,最后一个代表终点。)
输出: 4(最少加油次数)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define k 7
int main()
{
int a[k+1]={1,2,3,4,5,1,6,6};
int count=0;
int n=7;
int rest=7;//剩余的可行驶数
printf("应停靠的加油站为:");
for(int i=0;i<=k;i++)
{
if(rest>=a[i])
rest-=a[i];
else
{
count++;
rest=n-a[i];
printf("%5d",i);
}
}
printf("\n");
printf("最少加油次数为:%d\n",count);
return 0;
}