#53916: 測資似乎有問題


su2u4 (su2u4)


我原本寫`(b - a) / 2 + (a != b || a % 2 == 0)`

但我後來發現a與b皆為奇數就會出錯

例如: `3 7`

應該要是 `3 4 5 6 7`中的`4 6`兩個,但按照我原本寫的變成3個

#53917: Re: 測資似乎有問題


sam851015@gmail.com (多挖鼻孔有益身心健康)


我原本寫`(b - a) / 2 + (a != b || a % 2 == 0)`

但我後來發現a與b皆為奇數就會出錯

例如: `3 7`

應該要是 `3 4 5 6 7`中的`4 6`兩個,但按照我原本寫的變成3個


有問題的是你推導出來的公式...

a != b || a % 2 == 0 相當於只要 a 和 b 不相等,就一律加一,絕大部分情況下都不在意 a 和 b 的數值具體是多少

只有滿足 a == b 時,才會檢視 a 是奇數還是偶數

你要這樣寫不如寫一個 if ,特判各種狀況下該用什麼公式計算

 

但其實有更簡單的算式可以用就是了

提示: 國小數學

 

 

 

#53918: Re: 測資似乎有問題


sam851015@gmail.com (多挖鼻孔有益身心健康)


或是改寫成這樣

(b - a) / 2 + !(a % 2 != 0 && b % 2 != 0)
 
因為只有當 a 和 b 均為奇數時不該加 1 (這是你應該已經注意到,卻被你忽視的條件)