Viết hàm tính tổng chữ số lặp lại cho đến khi kết quả là một chữ số (digital root). Hai phương pháp: dùng vòng lặp và công thức toán học O(1).
Phương pháp 1: Vòng lặp
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));
Phương pháp 2: Công thức đồng dư (O(1))
const num = 123456; const addDigits = (num = 1) => { let predicate = (num - 1) % 9; return ++predicate; }; console.log(addDigits(num));
Kết quả
3