日期:2025年10月7日
ZeroJudge 題目連結:f348. 完全偶數
解題想法
我先寫一個函式 check 判斷輸入的整數 n 是否每一位都是偶數;再寫另一個函式 solve,找最接近 n 的完全偶數距離。
Python 程式碼
簡單但較慢的寫法,循序搜尋,使用時間約為 30 ms,記憶體約為 3 MB,通過測試。
def check(n): # 檢查輸入的整數是否每一位都是偶數
while n:
if n%10%2 == 1:
return False
n //= 10
return True
def solve(n): # 輸入整數,找最接近的完全偶數距離
if check(n): return 0 # 特例,n 是完全偶數,回傳 0
lower, upper, cnt = n-1, n+1, 0 # 往下找、往上找、次數
while True: # 找到答案為止
cnt += 1 # 次數加 1
if check(lower): return cnt # 如果 lower 是完全偶數,回傳 cnt
if check(upper): return cnt # 如果 uper 是完全偶數,回傳 cnt
lower -= 1; upper += 1 # lower 減 1,upper 加 1
return -1 # 預設的回傳值,用不到
print(solve(int(input())))