標題:
202409新手2-電動滑板車eScooter
[打印本頁]
作者:
may
時間:
2024-10-18 22:29
標題:
202409新手2-電動滑板車eScooter
[attach]19944[/attach]
電動滑板車 (e-Scooter)
問題敘述
歐洲許多地方都有共享電動滑板車,典型的計價方式有月費制和分鐘制。有一家公司推出兩個月費方案:
標準月費 299 元,每個月的騎乘時間上限為 300 分鐘。
尊享月費 699 元,每個月的騎乘時間上限為 750 分鐘。
沒有訂購任何月費方案或超過方案時間上限的話,以 1 分鐘 3 元計費。
請你撰寫一個程式,輸入使用者的每月騎乘時間,判斷該如何付費才會最便宜並輸出此最便宜的金額。注意:每個月最多只能訂購一個月費方案。
輸入格式
輸入一個正整數 T,T 表示每月騎乘時間(0 ≤ T ≤ 340,200)。
輸出格式
輸出最便宜的付費金額。
輸入範例 1
30
輸出範例 1
90
輸入範例 2
320
輸出範例 2
359
輸入範例 3
600
輸出範例 3
699
評分說明
此題目測資分為兩組,每組測資有多筆測試資料,需答對該組所有測資才能獲得該組分數,各組詳細限制如下。
第一組(30 分):0 ≤ T < 100。
第二組(70 分):無特別限制。
https://zerojudge.tw/ShowProblem?problemid=o579
作者:
may
時間:
2024-10-18 22:33
回復
1#
may
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin >> t;
// 每分鐘 3 元計算
int ori_price = t * 3;
int standard = 299 + (t-300>0? (t-300)*3: 0);
// 以上等同於
// if (t < 300)
// {
// standard = 299;
// }
// else
// {
// standard = 299 + (t-300)*3;
// }
int plus = 699 + (t-750>0? (t-750)*3: 0);
// 以上等同於
// if (t < 750)
// {
// plus = 699;
// }
// else
// {
// plus = 699 + (t-750)*3;
// }
if (t < 100)
{
cout << ori_price << endl;
}
else if (plus < standard)
{
cout << plus << endl;
}
else
{
cout << standard << endl;
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2