Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm tổng chữ số lặp lại đến khi được 1 chữ số trong Python


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