เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่เป็นตัวเลขและรวมตัวเลขซ้ำๆ จนกว่าจะแปลงเป็นตัวเลขหลักเดียว
เราจะแก้ปัญหานี้ด้วยสองวิธี -
วิธีที่ 1:การใช้ลูป
วิธีแก้ปัญหานี้ใช้ประโยชน์จาก while loops ในการบวกเลขซ้ำกันของตัวเลข
ตัวอย่าง
const num = 123456; const addDigits = (num = 1) => { let sum = num; while(sum % 10 !== sum){ let sum1 = 0; while(sum > 0){ sum1 += sum % 10; sum = Math.floor(sum / 10); } sum = sum1; }; return sum; }; console.log(addDigits(num));
วิธีที่ 2:การใช้โซลูชันเวลาคงที่ (O(1) ความซับซ้อนของเวลา)
โซลูชันนี้ใช้สูตรความสอดคล้องของคณิตศาสตร์ และขอแนะนำให้ผู้อ่านศึกษาสูตรนี้เพื่อทำความเข้าใจโซลูชันนี้ให้ดียิ่งขึ้น
ตัวอย่าง
const num = 123456; const addDigits = (num = 1) => { let predicate = (num - 1) % 9; return ++predicate; }; console.log(addDigits(num));
ผลลัพธ์
และผลลัพธ์ในคอนโซลของทั้งสองวิธีจะเป็น −
3