特定范围内的阿姆斯特朗数
阿姆斯特朗数:如果满足以下条件,一个正整数称为阿姆斯特朗数(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 ]
广告