Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ตรวจสอบผลรวมของจำนวนธรรมดา 3 จำนวนติดกัน - JavaScript

ตรวจสอบว่ามีจำนวนธรรมดา (Natural Numbers) 3 จำนวนติดกัน ที่ผลรวมเท่ากับตัวเลขที่กำหนดหรือไม่

คณิตศาสตร์

x + (x+1) + (x+2) = 3x + 3 = n
→ x = (n - 3) / 3

เงื่อนไข: n ≥ 6 และ n หาร 3 ลงตัว

ตัวอย่างโค้ด

const threeConsecutiveSum = sum => {
  if (sum < 6 || sum % 3 !== 0) return false;
  
  const x = (sum - 3) / 3;
  return [x, x + 1, x + 2];
};

console.log(threeConsecutiveSum(54));

ผลลัพธ์

[ 17, 18, 19 ]

การตรวจสอบ

17 + 18 + 19 = 54 ✓

ขยาย: หา k จำนวนติดกัน

const kConsecutiveSum = (sum, k) => {
  // x + (x+1) + ... + (x+k-1) = kx + k(k-1)/2 = sum
  // x = (sum - k(k-1)/2) / k
  const numerator = sum - k * (k - 1) / 2;
  if (numerator <= 0 || numerator % k !== 0) return false;
  const x = numerator / k;
  return Array.from({ length: k }, (_, i) => x + i);
};