Recursive Function (ฟังก์ชันเรียกซ้ำ) คือฟังก์ชันที่เรียกตัวเองระหว่างการดำเนินการ ทำให้ฟังก์ชันสามารถทำซ้ำได้หลายครั้ง แสดงผลลัพธ์ทีละรอบ Recursion เกี่ยวข้องกับแนวคิดอนันต์
ตัวอย่างที่ 1: หา Factorial
Factorial ของตัวเลขคือผลคูณของจำนวนเต็มทั้งหมดจาก 1 ถึงตัวเลขนั้น เช่น Factorial ของ 9 (เขียนว่า 9!) = 1×2×3×4×5×6×7×8×9 = 362880
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
number = 9
print("The factorial of", number, "is", factorial(number))
ผลลัพธ์
The factorial of 9 is 362880
ในโปรแกรมข้างต้น factorial() เป็น Recursive Function เนื่องจากมันเรียกตัวเอง แต่ละครั้งที่เรียก จะคูณตัวเลขกับ Factorial ของตัวเลขลบ 1 จนกว่าตัวเลขจะเท่ากับ 1
ตัวอย่างที่ 2: แสดงตัวเลขแบบ Recursive
def recursive_print(x):
if x < 1:
return
else:
print(x, end=" ")
recursive_print(x - 1)
print(x, end=" ")
return
recursive_print(5)
ผลลัพธ์
5 4 3 2 1 1 2 3 4 5
ตัวอย่างนี้แสดงการทำงานของ Recursion: ฟังก์ชันเรียกตัวเองจนถึง Base Case (x < 1) แล้วคืนค่ากลับมาทีละขั้น พิมพ์ตัวเลขระหว่างทาง