Giả sử chúng ta có một số n. Chúng ta phải tìm chữ số siêu hạng của số này. Siêu chữ số của số có một chữ số là chính chữ số nhưng đối với số có nhiều chữ số, siêu chữ số là tổng của tất cả các chữ số lặp đi lặp lại cho đến khi tổng là số có 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 tôi sẽ làm theo các bước sau -
- s:=0
- while n> 0 hoặc s> 9, do
- nếu n giống 0, thì
- n:=s
- s:=0
- s:=s + n mod 10
- n:=giá trị sàn của n / 10
- nếu n giống 0, thì
- trả lại s
Ví dụ
Hãy cùng chúng tôi xem cách 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