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

Chương trình tìm chữ số siêu của một số trong Python


Giả sử chúng ta có một số n. Chúng ta phải tìm chữ số siêu (super digit) của số này. Chữ số siêu của một số một chữ số là chính chữ số đó, nhưng đối với số nhiều chữ số, chữ số siêu là tổng của tất cả các chữ số lặp lại cho đến khi tổng là một số một chữ số.

Vì vậy, nếu đầu vào là n = 513682, thì đầu ra sẽ là 7 vì (5+1+3+6+8+2) = 25, (2 + 5) = 7.

Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau:

  • s := 0
  • khi n > 0 hoặc s > 9, thực hiện
    • nếu n bằng 0, thì n := s, s := 0
    • s := s + n mod 10
    • n := phần nguyên của n/10
  • trả về s

Ví dụ

Hãy xem triển khai sau để hiểu rõ hơn:

def solve(n):
    s = 0
    while(n > 0 or s > 9):
        if n == 0:
            n = s
            s = 0
        s += n % 10
        n //= 10
    return s

n = 513682
print(solve(n))

Đầu vào

513682

Đầu ra

7