题解 | Mileage Bank

#include <bits/stdc++.h>
using namespace std;

int main(){
    string from,to,level;
    int a;
    int ans=0;
    while(cin>>from){
        if(from=="0")break;
        cin>>to>>a>>level;
        if(level=="Y"){
            ans+=a>500?a:500;
        }else if(level=="B"){
            ans+=a%2==0?a+a/2:a+a/2+1;
        }else ans+=a*2;
    }
    cout<<ans<<endl;
}
#include <bits/stdc++.h>
using namespace std;

int main(){
    string from,to,level;
    int a;
    float ans=0;
    while(cin>>from){
        if(from=="0")break;
        cin>>to>>a>>level;
        if(level=="Y"){
            ans+=a>500?a:500;
        }else if(level=="B"){
            ans+=a+a/2;
        }else ans+=a*2;
    }
    printf("%.0f",ans);
}

本题主要是读题,垃圾信息太多了,本质上就是0就退出,其他就是三个等级,Y就是低级,但是尽管低级也会至少给你500的数值,然后B是中等,这个等级会给/2的额外信息,但是因为要四舍五入,所以可以按照上述写法一写,其实还有个更好写的,就是第二个解法,自动四舍五入,这里就这一个额外要求,对于最高级的,我们直接给双倍,这就是这题要干的事。

全部评论

相关推荐

咩咩子_:你到底想好了做什么吗?嵌入式,前端后端咋都有,项目介绍也不清楚。
点赞 评论 收藏
分享
01-17 12:35
吉首大学 Java
秋招之BrianGriffin:自己的工作自己做!😡
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务