最省油费

    xiaoxiao2022-08-06  42

    题目描述

    小明为了节省花费,决定驾驶最老式的燃油汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i12…,N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出No Solution”。

    输入

    输入五个数,即D1CD2PN

    接下来共N行,分别表示油站i离出发点的距离Di和每升汽油价格Pi

    输出

    输出最小费用

    如无法到达目的地,则输出No Solution”。

    样例输入

    275.6 11.9 27.4 2.8 2 102.0 2.9 220.0 2.2

    样例输出

    26.95

    #include <stdio.h> int main(){ int i,n; double d1,c,d2,p,jiayou,shengyou=0.0,juli,jiage=0.0,s=0.0; double d[100],pi[100]; scanf("%f %f %f %f %d",&d1,&c,&d2,&p,&n); for(i=1;i<=n;i++){ scanf("%f %f",&d[i],&pi[i]); } pi[0]=p; d[0]=0.0; for(i=0;i<n;i++){ if(pi[i]<pi[i+1]){ if((shengyou+c)*d2<(d[i+1]-d[i])){ printf("No Solution"); break; } else{ jiage += c*pi[i]; s += c*d1; } } else { juli=d[i+1]-d[i]; jiayou=juli/d2-shengyou; jiage += jiayou*pi[i]; s += juli; } } s=d1-s; jiayou=s/d2-shengyou; jiage += jiayou*pi[n]; printf("%.2f\n",jiage); return 0; } //d1:两个城市的距离 //c:汽车的容量 //d2:每升汽油能行驶的距离 //p:刚开始每升汽油的价格 //n:油站数 //di:离出发点的距离 //pi:每升汽油的价格
    转载请注明原文地址: https://ju.6miu.com/read-1132123.html
    最新回复(0)