Một số được gọi là số Armstrong nếu phương trình sau đúng với số đó:xy ... z =xx + yy + ... + zz, trong đó n là số chữ số trong số đó.
Ví dụ:
153 là một số Armstrong vì -
11 +55 +33 = 1 + 125 + 27 =153
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ụ
Mã cho điều này sẽ là -
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 ]