"ฟังก์ชันแบบเรียกซ้ำ" คือสิ่งที่เรียกตัวเองอีกครั้งในเนื้อหาของฟังก์ชัน
ตัวอย่างเช่น
-
ฟังก์ชันข้อเท็จจริง ( ) ซึ่งคำนวณแฟกทอเรียลของจำนวนเต็ม 'N' ซึ่งเป็นผลคูณของจำนวนเต็มทั้งหมดตั้งแต่ 1 ถึง N
-
fact ( ) ด้วยอาร์กิวเมนต์ 1 (หรือ) 0 ฟังก์ชันจะคืนค่า 1 มิฉะนั้น ฟังก์ชันจะคืนค่า n*fact (n-1) ซึ่งจะเกิดขึ้นจนกว่า 'n' จะเท่ากับ 1
Fact (5) =5* fact (4) =5*4*3* fact (3) =5*4*3*2* fact (2) =5*4*3*2*1 fact (1) =5*4*3*2*1 = 120.
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับใช้ฟังก์ชันแบบเรียกซ้ำเพื่อย้อนกลับตัวเลข -
#include<stdio.h> main ( ){ int n,f; int fact (int); clrscr ( ); printf ("enter a number"); scanf ("%d", &n); f= fact (n); printf (factorial value = %d",f); } int fact (int n){ int f; if ( ( n==1) || (n==0)) return 1; else f= n*fact (n-1); return f; }
ผลลัพธ์
ผลลัพธ์จะได้รับด้านล่าง -
Enter a number 5 Factorial value = 120
รับด้านล่างเป็นโปรแกรม C อื่นที่จะกลับตัวเลขที่กำหนดโดยใช้ฟังก์ชันแบบเรียกซ้ำ -
#include<stdio.h> int sum=0,rem; int main(){ int num,revNum; printf("enter number:\n"); scanf("%d",&num); revNum=revNumFunction(num);//calling function to reverse the given number printf("the number after reverse :%d",revNum); return 0; } revNumFunction(int num){ if(num){ rem=num%10; sum=sum*10+rem; revNum(num/10); } else return sum; }
ผลลัพธ์
ผลลัพธ์จะเป็นดังนี้ −
enter number: 1357 the number after reverse is :7531