题目链接: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
|
#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); } } }
|