日期:2025年4月20日
ZeroJudge 題目連結:k254. 拍七 (Seven)
解題想法
將整數轉成字串,在檢查字串中是否有指定的數字時會比較方便。
Python 程式碼
使用時間約為 24 ms,記憶體約為 3.3 MB,通過測試。
import sys
for line in sys.stdin:
s, e, b, k = map(int, line.split())
cnt = 0 # 拍手次數
for i in range(s, e+1): # 依序檢測 s ~ e
if i%b == 0 or str(b) in str(i): cnt += 1 # i 轉成字串檢查之中是否有 b
if cnt == k:
print(i); break
if cnt < k: print(-1)
C++ 程式碼
使用時間約為 3 ms,記憶體約為 340 kB,通過測試。
#include <iostream>
#include <string>
using namespace std;
int main() {
int s, e, b, k;
while(cin >> s >> e >> b >> k) {
int cnt = 0; // 拍手次數
string m = to_string(b); // 將 b 轉成字串,便於檢查 i 之中是否有 b
for(int i=s; i<=e; i++) { // 依序檢測 s ~ e
string n = to_string(i);
if (i%b == 0 || n.find(m) != string::npos) cnt++;
if (cnt == k) {
cout << i << "\n"; break;
}
}
if (cnt < k) cout << "-1\n";
}
return 0;
}
沒有留言:
張貼留言