內容
文文愛偶數,無獨有「偶」地,珊珊也愛偶數。珊珊除了收藏偶數以外,每次她收到一些數字時,她還會把其中的偶數挑出來把玩並予以加總。今天珊珊又收到了一個範圍的連續整數,請問這次她從這段數字中所收集到的偶數的總和是多少?
輸入說明
輸入只有一行,其中含有兩個由空白隔開的整數 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就是答案了
0 Comments
張貼留言