ตัวเลขจะเรียกว่า เลขอาร์มสตรอง ถ้าสมการต่อไปนี้เป็นจริงสำหรับตัวเลขนั้น -
xy..z = x^n + y^n+.....+ z^n
โดยที่ n หมายถึงจำนวนหลักในตัวเลข
ตัวอย่างเช่น − 370 เป็นหมายเลขอาร์มสตรองเพราะ −
3^3 + 7^3 + 0^3 = 27 + 343 + 0 = 370
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลขสองตัว นั่นคือช่วง และส่งกลับตัวเลขทั้งหมดระหว่างตัวเลขที่เป็นตัวเลขของ Armstrong (รวมถึงตัวเลขเหล่านี้ด้วย หากเป็น Armstrong)
ตัวอย่าง
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
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));
ผลลัพธ์
ผลลัพธ์ในคอนโซล:−
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371 ]