特定範圍內的阿姆斯特朗數


阿姆斯特朗數:如果滿足以下條件,一個正整數稱為阿姆斯特朗數(n 階):

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

我們需要編寫一個 JavaScript 函式,該函式接收一個數組,包含兩個數字,指定一個範圍。

該函式應返回該範圍內(包括起始和結束數字,如果是阿姆斯特朗數)的所有阿姆斯特朗數的陣列。

我們將首先分別編寫一個函式來檢測阿姆斯特朗數,然後迭代範圍以使用所需的數字填充陣列。

示例

以下是程式碼 −

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 ]

更新於: 2021-01-20

345 閱讀

開啟您的 職業生涯

透過完成課程獲取認證

開始
廣告
© . All rights reserved.