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

หาเลข Armstrong ในช่วง - JavaScript

Armstrong Number (Narcissistic Number) คือเลขที่ผลรวมของแต่ละหลักยกกำลังจำนวนหลัก (n) เท่ากับตัวเลขเดิม

สูตร

xyz = xⁿ + yⁿ + zⁿ  (n = จำนวนหลัก)

ตัวอย่าง

370 = 3³ + 7³ + 0³ = 27 + 343 + 0 = 370 ✓

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

const isArmstrong = number => {
  const len = String(number).length;
  let sum = 0, num = number;
  while (num) {
    const digit = num % 10;
    sum += Math.pow(digit, len);
    num = Math.floor(num / 10);
  }
  return sum === number;
};

const armstrongBetween = (lower, upper) => {
  const res = [];
  for (let i = lower; i <= upper; i++) {
    if (isArmstrong(i)) res.push(i);
  }
  return res;
};

console.log(armstrongBetween(1, 400));

ผลลัพธ์

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371 ]

Armstrong Numbers ที่รู้จัก

1-9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834...