Mileage Bank题解
Mileage Bank
http://www.nowcoder.com/questionTerminal/8ec03ec1fa7544cf84244a441ff9405c
一、题目概述
全是英文的题目,看得好难受啊,但是读懂了题意其实没什么难的地方
这道题是模拟的题目,大概是说,根据给出的里程和等级,得出相应的奖励
- 若等级为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; } }