Test Message

d491: 我也愛偶數 (swap 版)

內容

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


輸入

輸入只有一行,其中含有兩個由空白隔開的整數 a, b (0 ≤ a, b ≤ 2147483647)。(a 不一定會小於等於 b 哦!)

5 2

輸出

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

6


解題思路

d490,但題目不再保證 a <= b,所以在計算前先判斷 a > b 的話就先互換再做計算。


完整程式碼

AC (2ms, 112KB)
#include <stdio.h>
#define SWAP(x, y) (x)^=((y)^=((x)^=(y)))

int main()
{
int n, m;
scanf(" %d %d", &n, &m);
if (m < n) SWAP(n, m);
n += (n & 1), m -= (m & 1);
printf("%d\n", ((n + m) * ((m - n) / 2 + 1)) / 2);
return 0;
}