Chúng tôi được yêu cầu viết một hàm nhận hai số làm đối số m và n và nó trả về tổng của tất cả các số chẵn nằm trong khoảng từ m đến n (cả hai đều bao hàm)
Ví dụ -
If m = 10 and n = -4
Đầu ra phải là 10 + 8 + 6 + 4 + 2 + 0 + (- 2) + (- 4) =24
Phương pháp tiếp cận
Đầu tiên chúng ta sẽ tính tổng của tất cả các số chẵn đến n và tổng của tất cả các số chẵn đến m.
Sau đó, chúng tôi sẽ kiểm tra cho lớn hơn của hai m và n. Trừ tổng của nhỏ hơn cho sumof lớn hơn, cuối cùng sẽ cho chúng ta tổng giữa m và n.
Công thức
Tổng của tất cả các số chẵn từ 0 đến N được cho bởi -
$$ \ frac {N \ times (N + 2)} {4} $$
Do đó, hãy đặt tất cả những điều này vào mã -
Ví dụ
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));
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
24 70 30 8 0