Đếm số lần tổng các chữ số của một số trong JavaScript
Chúng ta cần viết một hàm JavaScript nhận vào một số nguyên dương và trả về tính bền cộng (additive persistence) của nó.
Tính bền cộng của một số nguyên, ví dụ n, là số lần chúng ta phải thay thế số bằng tổng các chữ số của nó cho đến khi số trở thành một số nguyên một chữ số.
Ví dụ: Nếu số là:
1679583
Thì,
1 + 6 + 7 + 9 + 5 + 8 + 3 = 39 // Lần 1 3 + 9 = 12 // Lần 2 1 + 2 = 3 // Lần 3
Do đó, kết quả đầu ra nên là 3.
Ví dụ
Mã thực hiện như sau:
const num = 1679583;
const sumDigit = (num, sum = 0) => {
if(num){
return sumDigit(Math.floor(num / 10), sum + num % 10);
};
return sum;
};
const persistence = num => {
num = Math.abs(num);
let res = 0;
while(num > 9){
num = sumDigit(num);
res++;
};
return res;
};
console.log(persistence(num));
Đầu ra
Kết quả trong console sẽ là:
3