หมายเลขอาร์มสตรอง:จำนวนเต็มบวกเรียกว่าหมายเลขอาร์มสตรอง (ของคำสั่ง 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 ]