Computer >> Máy Tính >  >> Lập trình >> Javascript

Số Armstrong trong một phạm vi trong JavaScript

Số Armstrong:Một số nguyên dương được gọi là số Armstrong (có thứ tự n) nếu -

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

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng chính xác hai số xác định một phạm vi.

Hàm sẽ trả về một mảng tất cả các số Armstrong nằm trong phạm vi đó (bao gồm cả số bắt đầu và số kết thúc nếu chúng là Armstrong).

Trước tiên, chúng tôi sẽ viết riêng một hàm để phát hiện các số Armstrong và sau đó lặp qua phạm vi đó để lấp đầy mảng bằng các số mong muốn.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[ 153, 370, 371, 407 ]