Board logo

標題: 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
  1. #include <bits/stdc++.h>
  2. using namespace std;

  3. int main()
  4. {
  5.     int t;
  6.     cin >> t;
  7.     // 每分鐘 3 元計算
  8.     int ori_price = t * 3;
  9.    
  10.     int standard = 299 + (t-300>0? (t-300)*3: 0);
  11.     // 以上等同於
  12.     // if (t < 300)
  13.     // {
  14.     //     standard = 299;
  15.     // }
  16.     // else
  17.     // {
  18.     //     standard = 299 + (t-300)*3;
  19.     // }
  20.     int plus = 699 + (t-750>0? (t-750)*3: 0);
  21.     // 以上等同於
  22.     // if (t < 750)
  23.     // {
  24.     //     plus = 699;
  25.     // }
  26.     // else
  27.     // {
  28.     //     plus = 699 + (t-750)*3;
  29.     // }
  30.     if (t < 100)
  31.     {
  32.         cout << ori_price << endl;
  33.     }
  34.     else if (plus < standard)
  35.     {
  36.         cout << plus << endl;
  37.     }
  38.     else
  39.     {
  40.         cout << standard << endl;
  41.     }
  42. }   
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2