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

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


เมื่อต้องการพิมพ์ตัวเลข 1 ถึง n โดยไม่ใช้ลูป สามารถใช้การเรียกซ้ำ (recursion) โดยลดค่าลงทีละ 1 จนถึง 0 แล้วพิมพ์ขณะกลับมาจากการเรียกซ้ำ

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

def print_numbers(n):
    if n > 0:
        print_numbers(n - 1)
        print(n)

upper = 6
print("The upper limit is:", upper)
print("The numbers are:")
print_numbers(upper)

ผลลัพธ์

The upper limit is: 6
The numbers are:
1
2
3
4
5
6

คำอธิบาย

  • ฟังก์ชัน print_numbers เรียกตัวเองด้วย n-1 ก่อน (การลุกลง)

  • เมื่อ n = 0 ลูปหยุด (base case)

  • ขณะกลับมาจากการเรียกซ้ำ (unwinding) จะพิมพ์ 1, 2, 3... ตามลำดับ

  • นี่คือตัวอย่างการใช้ recursion แทน iteration