內容

文文愛偶數,無獨有「偶」地,珊珊也愛偶數。珊珊除了收藏偶數以外,每次她收到一些數字時,她還會把其中的偶數挑出來把玩並予以加總。今天珊珊又收到了一個範圍的連續整數,請問這次她從這段數字中所收集到的偶數的總和是多少?



 輸入說明

輸入只有一行,其中含有兩個由空白隔開的整數 a, b (0 ≤ a ≤ b ≤ 2147483647)。

 輸出說明

請輸出一個整數,代表 a 與 b 之間 (含 a 與 b) 所有偶數的和,(答案會 ≤ 2147483647)。



 範例輸入

2 5

 範例輸出

6



 程式碼

#include <iostream>
using namespace std;
int main() {
  int a,b,n,x;
  cin>>a>>b;
  if(a >= 0 && a <= b){
    if(a%2 != 0){
      a += 1;
      
      }
    if(b%2 != 0){
      b -=1;
    }
    n = (b - a)/2+1;
    x = (a + b)*n/2;
    cout<<x;
  }
}



 解說

這題我想了很久,原本想問隔壁同學,結果他先問了我😅

放學了我們都沒想出來,所以我就回家想,突然靈光一閃!哀呀!這不就是等差數列嘛~

害我想了半節課。

等差數列:𝑆𝑛 = (𝑎1+𝑎𝑛)×𝑛 /2 

先判斷a跟b是不是偶數,a如果不是就要加1,b如果不是就要減2

項數為b(末項)減a(首項)加1

x就是首項加到末項的總和

最後輸出x就是答案了