POJ 1326 Mileage Bank C++版

题目链接:http://poj.org/problem?id=1326

题意就是要求我们计算飞机的总费用,地名只是眼子,不用管,头等舱两倍于路程的价格,商务舱1.5倍于路程的价格,经济舱,若路程小于500按500算,1倍于路程的价格!0结束一次飞行,#结束程序!

简单模拟题,不过有一点,我觉得学会了一些东西,就是:

Hint

When calculate bonus ,be sure you rounded x.5 up to x+1

当我们用int()强制转换时电脑会默认去掉小数,如何利用电脑去4舍5入,也算是这个题的一个考点了,我们巧妙的加上0.5就可能让电脑将尾数在5后的数识别到下一个整数里。

详细可以参见代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/***************************************
Problem: 1326 User: awq123
Memory: 252K Time: 0MS
Language: C++ Result: Accepted
***************************************/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
char temp[20],c;
float n;
int sum=0;
while(cin>>temp)
{
if(temp[0]=='#')
break;
else if(temp[0]=='0')
{
cout<<sum<<endl;
sum=0;
continue;
}
cin>>temp;
cin>>n>>c;
if(c=='F')
sum+=int(2*n+0.5);
else if (c=='B')
sum+=int(1.5*n+0.5);
else if (c=='Y')
{
if(n<500)
sum+=500;
else
sum+=int(n+0.5);
}
}
}