Mileage Bank
http://poj.org/problem?id=1326
题意:输入起始地点和终止地点(没有用) 输入里程 输入舱位
航舱分 F B Y
F Actual mileage + 100% mileage Bonus
B Actual mileage + 50% mileage Bonus
Y 1-500 miles 500 miles
500+ miles Actual mileage
输出最后的里程数(四舍五入)
思路:因为题里要求要四舍五入,用floor( m + 0.5); floor(double m)是取不大于m的最大整数,那么+0.5就是四舍五入的意思了。
#include<iostream> #include<cmath> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; int main() { string o, d; double m; char x; while(1) { cin >> o; if(o[0] == '#') break; int sum = 0; while(cin >> d >> m >> x) { if(x == 'F') sum += (m * 2); if(x == 'Y') { if(m >= 1 && m <= 500) sum += 500; else sum += m; } if(x == 'B') { sum += floor( m * 1.5 + 0.5); } cin >> o; if(o[0] == '0') { cout << sum << endl; sum = 0; break; } } } return 0; }