Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ผลรวมของเลขคู่ตั้งแต่ n ถึง m ไม่ว่า nm JavaScript


เราจำเป็นต้องเขียนฟังก์ชันที่ใช้ตัวเลขสองตัวเป็นอาร์กิวเมนต์ m และ n และจะส่งกลับผลรวมของจำนวนคู่ทั้งหมดที่อยู่ระหว่าง m และ n (รวมทั้งสอง)

ตัวอย่างเช่น −

If m = 10 and n = -4

ผลลัพธ์ควรเป็น 10+8+6+4+2+0+(-2)+(-4) =24

แนวทาง

ก่อนอื่นเราจะคำนวณผลรวมของเลขคู่ทั้งหมดสูงถึง n และผลรวมของเลขคู่ทั้งหมดสูงถึง m

จากนั้นเราจะตรวจสอบหาค่าที่ใหญ่กว่าของสอง m และ n ลบผลรวมที่น้อยกว่าออกจากผลรวมที่มากกว่าซึ่งจะทำให้ผลรวมระหว่าง m และ n แก่เราในที่สุด

สูตร

ผลรวมของเลขคู่ทั้งหมดตั้งแต่ 0 ถึง N ถูกกำหนดโดย −

$$\frac{N\times(N+2)}{4}$$

ดังนั้น เรามาใส่ทั้งหมดนี้ลงในโค้ด −

ตัวอย่าง

const sumEven = n => (n*(n+2))/4;
const evenSumBetween = (a, b) => {
   return a > b ? sumEven(a) - sumEven(b) + b : sumEven(b) - sumEven(a) + a;
};
console.log(evenSumBetween(-4, 10));
console.log(evenSumBetween(4, 16));
console.log(evenSumBetween(0, 10));
console.log(evenSumBetween(8, 8));
console.log(evenSumBetween(-4, 4));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

24
70
30
8
0