หมายเลขอาร์มสตรอง:จำนวนเต็มบวกเรียกว่าหมายเลขอาร์มสตรอง (ของคำสั่ง n) ถ้า -
abcd... = a^n + b^n + c^n + d^n + ...
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลขสองตัวที่ระบุช่วงเท่านั้น
ฟังก์ชันควรส่งคืนอาร์เรย์ของตัวเลข Armstrong ทั้งหมดที่อยู่ในช่วงนั้น (รวมถึงตัวเลขเริ่มต้นและสิ้นสุดหากเป็น Armstrong)
ก่อนอื่นเราจะเขียนฟังก์ชันแยกกันเพื่อตรวจหาหมายเลข Armstrong จากนั้นวนซ้ำในช่วงเพื่อเติมอาร์เรย์ด้วยตัวเลขที่ต้องการ
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
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 ]