e621 - 1. 免費停車 (Free Parking)
題目描述
題目要求找出指定區間內,不為指定數字倍數的數字。具體來說,輸入包含多組測試案例,每組案例包含三個整數 b、c 和 d。輸出區間 (b, c) 內所有不為 d 的倍數的數字,如果沒有符合條件的數字,則輸出 "No free parking spaces."。
解題思路
這題的解題思路很直接。對於每組測試案例,我們需要遍歷從 b + 1 到 c - 1 的所有整數。對於每個整數 i,我們檢查它是否為 d 的倍數。如果不是,則將其輸出。如果遍歷完整個區間後沒有找到任何符合條件的數字,則輸出 "No free parking spaces."。
複雜度分析
- 時間複雜度: O(n),其中 n 是區間
(b, c)的大小,即c - b - 1。 - 空間複雜度: O(1),因為我們只使用了常數級別的額外空間。
程式碼
#include <iostream>
using namespace std;
int main(){
int a,b,c,d;
cin >> a;
while(a--){
cin >> b >> c >> d;
bool e=0;
for(int i=b+1;i<c;i++){
if(i%d!=0){
cout << i << " ";
e=1;
}
}
if(e==0)
cout << "No free parking spaces.\n";
else
cout << "\n";
}
}