问题标题: 酷町堂:2700 计价器

1
1
已解决
李伟宸
李伟宸
高级守护
高级守护

2700 计价器

庐阳区2012年信息学竞赛试题

题目描述 Description

根据合肥市物价局公布的合肥出租车运价新方案,取消征收临时燃油附加费,起步基价分别调为8元∕2.5公里(排量2.0升以下),9元∕2.5公里(排量2.0升及以上)。同时,公里租价提高到1.40元每公里,空贴费启动标准从现在的10公里以上提高到15公里,即超过15公里,每公里按2.1元计算。不考虑等时费等因素。请你为出租车的计价器编写计费程序。

输入描述 Input Description

两个数X, S,X为1表示出租车的排量在2.0以下,X为2表示出租车的排量2.0及以上;S为小数,表示行驶里程。

输出描述 Output Description

一个整数,表示费用,四舍五入取整。

样例输入 Sample Input

1 10.0

样例输出 Sample Output

19

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int x;
double s;
int main(){
    cin>>x>>s;
    if(x==1){
        if(s<=2.5) cout<<int(8+0.5); 
        if(s>8){
            if(s<=15) cout<<int(8+(s*1.40)+0.5);
            else cout<<int(8+(s*2.1)+0.5); 
        }    
    }else if(x==2){
        if(s<=2.5) cout<<int(9+0.5); 
        if(s>8){
            if(s<=15) cout<<int(9+(s*1.40)+0.5);
            else cout<<int(9+(s*2.1)+0.5); 
        }    
    }
    return 0;
}

李伟宸在2022-04-04 14:32:32追加了内容

谁先发我就先采纳谁

谁先发我就先采纳谁

谁先发我就先采纳谁

(重要的事情说三遍)喵~~~


0
已采纳
甄子烨
甄子烨
高级光能
高级光能

emmm.....

有点小水.....

这一题是分段收费,我也是做了7遍才过....

有点复杂。

进入正题:

两个大的if中,x==2.5时,直接输出8和9。

emmm,给你个建议,不要每次if里面都直接输出,可以定义一个double的s1来算值,算完之后再printf("%d",(int)(........));

这样会方便一些。

第一个大if{

当s<=15时,s1=8+(s-2.5)*1.4;

然后else{s1=(s-15)*2.1+8+12.5*1.4;     .........    }

}

第二个大if只要把8改成9就行了,其他都一样。

甄子烨在2022-04-14 19:56:50追加了内容

求采纳啊~!!!

我要回答