Cho số dương , cộng các chữ số lặp lại cho đến khi kết quả < 10 (digital root).
Ví dụ: → 9+6+2+5=22 → 2+2=4 → kết quả 4.
Giải thuật (Đệ quy / Công thức toán học)
Cách 1: Đệ quy tách chữ số.
Cách 2 (O(1)): Digital root = nếu 0 else 0.
Ví dụ minh họa (Đệ quy)
import math
class Solution:
def solve(self, n):
if n < 10:
return n
s = 0
l = math.floor(math.log(n, 10) + 1)
while l > 0:
s += n % 10
n //= 10
l -= 1
return self.solve(s)
ob = Solution()
print(ob.solve(9625)) # Output: 4
Đầu vào
9625
Đầu ra
4