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

การหาจำนวนอาร์มสตรอง (Armstrong Numbers) ในช่วงที่กำหนดด้วย JavaScript

จำนวนอาร์มสตรอง (Armstrong Numbers)

จำนวนเต็มบวกที่ผลรวมของแต่ละหลักยกกำลัง n (n = จำนวนหลัก) เท่ากับตัวเลขนั้นเอง

เช่น 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153

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

const range = [11, 1111];

const isArmstrong = (num) => {
  const numberOfDigits = ('' + num).length;
  let sum = 0;
  let temp = num;
  while (temp > 0) {
    let remainder = temp % 10;
    sum += remainder ** numberOfDigits;
    temp = parseInt(temp / 10);
  }
  return sum === num;
};

const findAllArmstrong = ([start, end]) => {
  const res = [];
  for (let i = start; i <= end; i++) {
    if (isArmstrong(i)) {
      res.push(i);
    }
  }
  return res;
};

console.log(findAllArmstrong(range));

ผลลัพธ์

[153, 370, 371, 407]

คำอธิบาย

isArmstrong: นับจำนวนหลัก แล้วสะสม digit^count ตรวจสอบเท่ากับตัวเลขเดิม

findAllArmstrong: วนลูปทุกตัวเลขในช่วง [start, end] ตรวจสอบและเก็บ

Armstein numbers ในช่วง 1-10000: 1-9, 153, 370, 371, 407, 1634, 8208, 9474