题解 | #Mileage Bank#
Mileage Bank
https://www.nowcoder.com/practice/8ec03ec1fa7544cf84244a441ff9405c
#include <cmath>
#include <iostream>
#include<cstring>
using namespace std;
#define MAX 1000
struct licheng{
int len;
char ch;
};
void acmpark(struct licheng li[], int n){
double temp;
for (int i = 0; i < n; i++){
switch(li[i].ch){
case 'F': li[i].len *= 2;break;
case 'B': {
temp = (double)li[i].len * 0.5;
li[i].len += round(temp); //用round函数 四舍五入
break;
}
case 'Y':{
if (li[i].len <= 500) li[i].len = 500;
break;
}
default: break;
}
}
}
int main() {
struct licheng li[MAX];
string begin, end;
int i = 0;
while (cin >> begin >> end >> li[i].len >> li[i].ch && begin != "0")
i++;
acmpark(li,i);
int sum = 0;
for (int j = 0; j < i; j++){
sum += li[j].len;
}
cout << sum << endl;
}
// 64 位输出请用 printf("%lld")
查看14道真题和解析