一、题目概述
全是英文的题目,看得好难受啊,但是读懂了题意其实没什么难的地方
这道题是模拟的题目,大概是说,根据给出的里程和等级,得出相应的奖励
- 若等级为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;
}
}
京公网安备 11010502036488号