高中生程式解題系統:e621: 1. 免費停車 (Free Parking)

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.

題目連結 https://zerojudge.tw/ShowProblem?problemid=e621

想法:
  1. 用一個變數 hasFree 來記錄是否有免費停車位。
  2. 用迴圈來處理 大於A、小於B。
  3. 用取餘數運算子 % 與 if 來判斷是否被 C 整除。

C++ 參考程式碼
#include <iostream>
using namespace std;

int main()
{
  int N; // 幾天放送優惠
  cin >> N;
  int a, b, c;

  while(N--) {
    cin >> a >> b >> c;
    bool hasFree = false; // 是否有免費停車位
 
    for(int idx = a + 1; idx < b; idx++) { // 大於a、小於b
      if( idx % c != 0) { // 不被 c 整除
        if(hasFree) cout << " ";  // 因為已有免費車位,先輸出空白來區隔
        hasFree = true;           // 有免費車位
        cout << idx;              // 輸出車位號碼
      }
    }

    if(hasFree == false)  // 無免費車位
      cout << "No free parking spaces.";

    cout << '\n';
  }
}


Python 參考程式碼
N = int(input()) # 幾天放送優惠

while(N):
    data = input()
    hasFree = False # 是否有免費停車位
    a, b, c = list(map(int, data.split(' ')))

    for idx in range(a+1, b): # 大於a、小於b
        if( idx % c != 0 ): # 不被 c 整除
            if hasFree:
                print(end= ' ') # 因為已有免費車位,先輸出空白來區隔
            print(idx, end = "") # 輸出車位號碼
            hasFree = True # 有免費車位
   
    if(hasFree == False): # 無免費車位
        print("No free parking spaces.", end = "")
    print()
    N = N - 1


沒有留言: