Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหา Super Digit ของตัวเลขใน Python

การหา Super Digit (รากดิจิตอล)

Super Digit คือผลรวมหลักของเลขทำซ้ำจนเหลือ 1 หลัก (Digital Root)

อัลกอริทึม

  1. s = 0 (ผลรวมสะสม)
  2. วนลูป while n > 0 หรือ s > 9:
    • ถ้า n == 0: n = s, s = 0 (เริ่มรอบใหม่)
    • s += n % 10 (บวกหลักสุดท้าย)
    • n //= 10 (ตัดหลักสุดท้าย)
  3. คืนค่า s

ตัวอย่างโค้ด

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))

ผลลัพธ์

7

คำอธิบาย

513682 → 5+1+3+6+8+2 = 25 → 2+5 = 7

สูตรทางคณิตศาสตร์: Digital Root = 1 + (n-1) % 9 (ถ้า n > 0)