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

หมายเลข Armstrong ภายในช่วงใน JavaScript


หมายเลขอาร์มสตรอง:จำนวนเต็มบวกเรียกว่าหมายเลขอาร์มสตรอง (ของคำสั่ง n) ถ้า -

abcd... = a^n + b^n + c^n + d^n + ...

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลขสองตัวที่ระบุช่วงเท่านั้น

ฟังก์ชันควรส่งคืนอาร์เรย์ของตัวเลข Armstrong ทั้งหมดที่อยู่ในช่วงนั้น (รวมถึงตัวเลขเริ่มต้นและสิ้นสุดหากเป็น Armstrong)

ก่อนอื่นเราจะเขียนฟังก์ชันแยกกันเพื่อตรวจหาหมายเลข Armstrong จากนั้นวนซ้ำในช่วงเพื่อเติมอาร์เรย์ด้วยตัวเลขที่ต้องการ

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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 ]