Viết hàm nhận một số, liên tục cộng các chữ số cho đến khi kết quả là số một chữ số, rồi trả về số đó.
Code đơn giản: hàm đệ quy cộng chữ số cho đến khi số <= 9 (xử lý dấu riêng để không viết logic hai lần).
Ví dụ
const sumRecursively = (n, isNegative = n < 0) => {
n = Math.abs(n);
if (n > 9) {
return sumRecursively(parseInt(String(n).split("").reduce((acc, val) => {
return acc + +val;
}, 0)), isNegative);
}
return !isNegative ? n : n * -1;
};
console.log(sumRecursively(88));
console.log(sumRecursively(18));
console.log(sumRecursively(-345));
console.log(sumRecursively(6565));Kết quả
Đầu ra trong console sẽ là:
7 9 -3 4