雖然這題很簡單,一堆人貼程式碼,但是都是累加
這裡提供一個公式解
首先,題目說要求一個區間內的奇數和 S
我們可以把這個和拆成 1 ~ b 之間的奇數和 Sb 減去 1 ~ a 的奇數和 Sa
也就是 S = Sb - Sa
然後因為只要求奇數,所以
若 b 是偶數,將 b 減一
若 a 是偶數,將 a 加一
a、b 是奇數就直接帶後面公式
利用等差數列之和公式,求 1 ~ a 之間的奇數和
Sa = ( 上底1 + 下底a ) * ( 高 (1+a)/2 ) / 2
但是這樣總和會少算一個 a ,於是修正上述公式
改成 Sa 為 1 ~ (a -2) 間的奇數和
Sa = ( 上底 1 + 下底 ( a-2 ) ) * ( 高 (1+(a-2))/2 ) / 2
化簡得 Sa = ( a - 1 ) * ( a - 1 ) / 4
同理 Sb = ( 上底1 + 下底 b ) * ( 高 (1+b)/2 ) /2
化簡得 Sb = ( b + 1 ) * ( b + 1 ) / 4
所以答案 S = ( b + 1 ) * ( b + 1 ) / 4 - ( a - 1 ) * ( a - 1 ) / 4
以上是不使用 迴圈 的公式解