C语言!,.⑤汽车加油:一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少.输入:第一行有2 个正整数N和K(1

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 02:52:32
C语言!,.⑤汽车加油:一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少.输入:第一行有2 个正整数N和K(1

C语言!,.⑤汽车加油:一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少.输入:第一行有2 个正整数N和K(1
C语言!,.
⑤汽车加油:
一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少.输入:第一行有2 个正整数N和K(1

C语言!,.⑤汽车加油:一辆汽车加满油后可行驶n公里.旅途中有若干个加油站.设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少.输入:第一行有2 个正整数N和K(1
#include<stdio.h>
void main()
{
int N,K,i,j,cnt;
int dist[100];
while(!(printf("输入N和K:")&&scanf("%d%d",&N,&K)&&N>0&&K>0&&N<=100&&K<=100)){
printf("输入错误!\n按任意键重新输入");
getch();
system("cls");
}
for(i=0;i<K;i++){
printf("第%d个加油站到第%d个加油站的距离为:",i,i+1);
scanf("%d",&dist[i]);
}
printf("第%d个加油站到目的地的距离为:",i);
scanf("%d",&dist[i]);

for(i=0;i<=K;i++){
if(dist[i]>N){
printf("No Solution.\n");
}
}
for(i=0,j=0,cnt=0;i<=K;i++){
j+=dist[i];
if(j>N){
cnt++;
j=dist[i];
}
}
printf("最少加油次数:%d\n",cnt);
}