旅行家的预算

发布时间:2024-05-16 02:40 发布:上海旅游网

问题描述:

题目描述
一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离i、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。
输入
输入第一行有5个数:D1,c,D2,P,N(前四个为实数,N为整数,N<=1000)
后面有N行,每行两个实数,分别表示对应的加油站离出发点的距离,与每升汽油的价格
输出
输出仅一行,即最少花费
帮帮忙用C++,好的++分

问题解答:

#include "stdio.h"
#include "iostream"
using namespace std;
int main(){
int n,k[1000],i,sum=0,a[1000],count[1000]={0},j=0,l,b[1000];
while(1){
cin>>n;
cin>>k[j];
if(n==0&&k[j]==0) break;
for(i=0;i<=k[j];i++) cin>>a[i];
for(i=0;i<=k[j];){
if(a[i]>n) break;
if(sum<n){
sum=a[i]+sum;
if(sum==n){
if(i<k[j]) count[j]++;
sum=0;
}
else if(sum>n){
sum=a[i];
count[j]++;
}
i++;
}
}
sum=0;
b[j]=i;
j++;
}
for(l=0;l<j;l++){
if(b[l]<=k[l]) cout<<"No Solution"<<endl;
else cout<<count[l]<<endl;
}
return 0;
}
这是我做过的算法分析最简单的一题

热点新闻