一、题目概述

全是英文的题目,看得好难受啊,但是读懂了题意其实没什么难的地方
这道题是模拟的题目,大概是说,根据给出的里程和等级,得出相应的奖励

  • 若等级为F,奖励为里程的2倍;
  • 若等级为B,奖励为里程的1.5倍;
  • 若等级为Y,当里程在1-500时奖励为500;当里程大于500时,奖励为里程数
  • 最后打印出所以奖励之和。

需要注意数的四舍五入

二、代码实现

#include <bits/stdc++.h>

using namespace std;

int func(int mileage, char classCode);//用于计算奖励

int main() {
    string originalCity, distanceCity;
    int actualMiles;
    char classCode;
    int sum = 0;
    while (cin >> originalCity && originalCity != "#") {
        if (originalCity == "0") {
            cout << sum << endl;
            sum = 0;
            continue;
        }
        cin >> distanceCity >> actualMiles >> classCode;
        sum += func(actualMiles, classCode);
    }
}

int func(int mileage, char classCode) {
    switch (classCode) {
        case 'F':
            return mileage * 2;
        case 'B':
            return (int) (1.5 * mileage + 0.5);//对数四舍五入的处理
        case 'Y':
            return mileage > 500 ? mileage : 500;
        default:
            return 0;
    }
}