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

โปรแกรม Python พิมพ์ชุดตัวเลขโดยไม่ใช้ Loop (Recursion)

โจทย์: กำหนด N และ K ลบ K จาก N จน N ≤ 0 แล้วบวก K กลับไปจนกลับเป็น N เดิม

ตัวอย่าง: N=10, K=4 → 10 6 2 -2 2 6 10

อัลกอริทึม (Recursion)

  • เรียกฟังก์ชันซ้ำ ลบ K ทุกครั้ง จน N ≤ 0
  • เมื่อ N ≤ 0 สลับ flag ให้บวก K แทน
  • หยุดเมื่อ N กลับเป็นค่าเดิมและ flag เป็น False

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

def PrintNumber(N, Original, K, flag):
    print(N, end=" ")
    if N <= 0:
        flag = not flag
    if N == Original and not flag:
        return
    if flag:
        PrintNumber(N - K, Original, K, flag)
    else:
        PrintNumber(N + K, Original, K, flag)

N = 10
K = 4
PrintNumber(N, N, K, True)

ผลลัพธ์

10 6 2 -2 2 6 10

โปรแกรม Python พิมพ์ชุดตัวเลขโดยไม่ใช้ Loop (Recursion)

สรุป

เรียนรู้การพิมพ์ชุดตัวเลขแบบ Recursive โดยไม่ใช้ Loop: ลบ K จน ≤ 0 แล้วบวก K กลับไปจนครบรอบ