เราจำเป็นต้องสร้างฟังก์ชันที่ใช้ตัวเลขและหาผลรวมของตัวเลขซ้ำๆ จนกว่าผลรวมจะเป็นตัวเลขหนึ่งหลัก
ตัวอย่าง
findSum(12345) = 1+2+3+4+5 = 15 = 1+5 = 6
ดังนั้นผลลัพธ์ควรเป็น 6.
มาเขียนโค้ดสำหรับฟังก์ชันนี้ findSum()
// using recursion
const findSum = (num) => {
if(num < 10){
return num;
}
const lastDigit = num % 10;
const remainingNum = Math.floor(num / 10);
return findSum(lastDigit + findSum(remainingNum));
}
console.log(findSum(2568)); เราตรวจสอบว่าตัวเลขน้อยกว่า 10 หรือไม่ มันถูกย่อให้เล็กสุดแล้วและเราควรส่งคืนและจากฟังก์ชัน มิฉะนั้น เราควรส่งคืนการเรียกไปยังฟังก์ชันที่เรียกซ้ำตัวเลขสุดท้ายจากตัวเลขที่เพิ่มเข้าไป จนกว่าจะน้อยกว่า 10
ดังนั้นผลลัพธ์ของรหัสนี้จะเป็น −
3