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

0
0
已解决
赵朗
赵朗
高级光能
高级光能

#include<iostream>
#include<cstdio>
using namespace std;
double h,o,sum;
int main(){
    cin>>h;
    cin>>o;
    if(h==1){
        if(o<=2.5){
            sum=(o/2.5)*8-1.4*o;
        }
        else if(o<=15)
            sum=(o/2.5)*8-o*1.4;
        else
            sum=(o/2.5)*8+15*1.4-(o-15)*2.1;
    }
    else
    {
        if(o<=2.5){
            sum=9-1.4*o;
        }
        else if(o<=15)
            sum=(o/2.5)*9-o*1.4;
        else
            sum=(o/2.5)*9+15*1.4-(o-15)*2.1;
    }
    printf("%.0f",(int)(sum+0.5)/1.0);
    return 0;
}
 

输出样例比正确样例小1 

在线等 哪错了

赵朗在2020-04-02 21:25:23追加了内容

酷町侠 别关闭 我这是让他们找错啊

 


0
已采纳
黄钰杰
黄钰杰
初级守护
初级守护

首先
当小于2.5时是起步价,8或9.

其次

else if(o<=15)

应该是

else if(o>=2.5&&o<=15)

还有你的算法错了

应该是起步价(9或8)加上o-2.5(因为起步价算过了)然后乘1.4。

1:小于15大于2.5是这样算的

sum=8+(o-2.5)*1.4;

1:大于15 是这样算的

sum=8+12.5*1.4+(o-15)*2.1;

2:小于15大于2.5是这样算的

sum=9+(o-2.5)*1.4;

2:大于15 是这样算的

sum=9+12.5*1.4+(o-15)*2.1;

0
我要回答