Một số được gọi là số Armstrong nếu phương trình sau đúng với số đó -
xy..z = x^n + y^n+.....+ z^n
Trong đó, n biểu thị số chữ số trong số
Ví dụ - 370 là số Armstrong vì -
3^3 + 7^3 + 0^3 = 27 + 343 + 0 = 370
Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào hai số, một dải ô và trả về tất cả các số giữa chúng là số Armstrong (bao gồm cả chúng, nếu chúng là Armstrong).
Ví dụ
Hãy viết mã cho chức năng này -
const isArmstrong = number => {
let num = number;
const len = String(num).split("").length;
let res = 0;
while(num){
const last = num % 10;
res += Math.pow(last, len);
num = Math.floor(num / 10);
};
return res === number;
};
const armstrongBetween = (lower, upper) => {
const res = [];
for(let i = lower; i <= upper; i++){
if(isArmstrong(i)){
res.push(i);
};
};
return res;
};
console.log(armstrongBetween(1, 400)); Đầu ra
Đầu ra trong bảng điều khiển:-
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371 ]