日期:2025年3月26日
ZeroJudge 題目連結:g498. 兔子跳躍 (Rabbit)
解題想法
這題測資不大,用 for 迴圈依序檢測每一個值就能過關。
Python 程式碼
使用時間約為 18 ms,記憶體約為 3.3 MB,通過測試。
import sys
for line in sys.stdin:
m, n, d = map(int, line.split()) # 可跳距離 m、n,目標距離 d
def solve(): # 自訂函式,測是是否能走到 d
for i in range(0, d+1, m): # 依序測試 0, m, 2m, 3m, ...
if (d-i)%n == 0: return True # 如果 d-i 可以被 n 整除,能走到 d
return False # 如果能跑完 for 迴圈,走不到 d
print("YES" if solve() else "NO") # 印出答案
C++ 程式碼
使用時間約為 2 ms,記憶體約為 84 kB,通過測試。
#include <cstdio>
using namespace std;
bool solve(int m, int n, int d) { // 自訂函式,測是是否能走到 d
for(int i=0; i<=d; i+=m) { // 依序測試 0, m, 2m, 3m, ...
if ((d-i)%n == 0) return true; // 如果 d-i 可以被 n 整除,能走到 d
}
return false; // 如果能跑完 for 迴圈,走不到 d
}
int main() {
int m, n, d; // 可跳距離 m、n,目標距離 d
while(scanf("%d %d %d", &m, &n, &d) != EOF) {
if (solve(m, n, d)) printf("YES\n"); // 印出答案
else printf("NO\n");
}
return 0;
}
沒有留言:
張貼留言