所以只能用 前後加減 % 2 == 0 來判斷 偶數
假設 a = 0, b = 9 或 a = 1, b = 10, 也就是 一個為單數, 一個為偶數
那 (b - a) / 2 = 4.5, 取整數 int((b - a) / 2) 或者 ((b - a) // 2) -> 4, 兩種邏輯都可以
這時候少掉一個偶數, 再加回來,
可用 ((a % 2 == 0) or (b % 2 == 0)) 會傳回 " True -> 1 "
假設 a = 2, b = 10, 也就是 前後都是 偶數,
那 (b - a) / 2 = 4.0, 取整數 int((b - a) / 2) 或者 ((b - a) // 2) -> 也是 4
這時候少掉一個偶數, 再加回來,
還是可用 ((a % 2 == 0) or (b % 2 == 0)) 會傳回 " True -> 1 "
假設 a = 1, b = 9, 前後都是 單數
那 (b - a) / 2 = 4.0, 取整數 int((b - a) / 2) 或者 ((b - a) // 2) -> 也是 4
這時候 前後都是 單數, 不需要再加 1
所以 ((a % 2 == 0) or (b % 2 == 0)) 會傳回 " False -> 0 "
因此公式可推論為
int((b - a) / 2) + ((a % 2 == 0) or (b % 2 == 0))
或者
((b - a) // 2) + ((a % 2 == 0) or (b % 2 == 0))