特定范围内的阿姆斯特朗数


阿姆斯特朗数:如果满足以下条件,一个正整数称为阿姆斯特朗数(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 阅读

开启您的 职业生涯

通过完成课程获取认证

开始
广告