โจทย์: กำหนด 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

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