熱門文章

2025年3月26日 星期三

ZeroJudge 解題筆記:g498. 兔子跳躍 (Rabbit)

作者:王一哲
日期: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;
}


沒有留言:

張貼留言