Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ตัวเลขนาร์ซิสซิสติก (Narcissistic Number) ใน JavaScript


ตัวเลขนาร์ซิสซิสติก (Narcissistic number)

Narcissistic number ในฐานเลข b ที่กำหนด คือตัวเลขที่เป็นผลรวมของหลักของมันเอง แต่ละหลักยกกำลังจำนวนหลัก

ตัวอย่าง −

153 = 1^3 + 5^3 + 3^3 = 1+125+27 = 153

เช่นกัน

1 = 1^1 = 1

วิธีการ

เราจะนับจำนวนหลักก่อนด้วย while loop แล้วด้วย while loop อีกอัน เราเลือกหลักสุดท้ายของตัวเลขและบวกกำลัง (count) ของมันเข้าไปในตัวแปร sum หลังลูป เราคืนค่าบูลีนตรวจสอบว่า sum เท่ากับตัวเลขหรือไม่

โค้ดสำหรับวิธีนี้จะเป็น −

ตัวอย่าง

const isNarcissistic = (num) => {    let m = 1, count = 0;    while(num / m > 1){       m *= 10;       count++;    };    let sum = 0, temp = num;    while(temp){       sum += Math.pow(temp % 10, count);       temp = Math.floor(temp / 10);    };    return sum === num; }; console.log(isNarcissistic(153)); console.log(isNarcissistic(1634)); console.log(isNarcissistic(1433)); console.log(isNarcissistic(342));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

true true false false