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

เพิ่มค่าตัวเลขทศนิยมที่เก็บในลิสต์ (เลขหลักสุดท้าย +1) ด้วย Recursive

โปรแกรมนี้จัดการลิสต์ตัวเลขที่แทนค่าทศนิยม (แต่ละสมาชิกคือหนึ่งหลัก) เพิ่มค่า 1 ให้กับหลักสุดท้าย พร้อมจัดการการนำ (carry) เมื่อหลักนั้นเป็น 9 ใช้ recursive function

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


def increment_number(digits, idx):
    """เพิ่ม 1 ให้หลัก idx จัดการ carry แบบ recursive"""
    if digits[idx] < 9:
        digits[idx] += 1
        return
    digits[idx] = 0
    if idx > 0:
        increment_number(digits, idx - 1)
    else:
        # ถ้าทำ carry จนถึงหลักแรกและยัง carry อยู่ ให้เพิ่มหลักใหม่หน้าสุด
        digits.insert(0, 1)

# ทดสอบ
digits = [0, 1, 4, 7, 9]  # แทนเลข 01479
print("ลิสต์ต้นฉบับ:", digits)

increment_number(digits, len(digits) - 1)
print("หลังเพิ่ม 1:", digits)

ผลลัพธ์

ลิสต์ต้นฉบับ: [0, 1, 4, 7, 9]
หลังเพิ่ม 1: [0, 1, 4, 8, 0]

เลข 01479 + 1 = 01480 หลักสุดท้าย 9 กลายเป็น 0 นำ 1 ไปบวกหลักก่อนหน้า 7 กลายเป็น 8