แฟกทอเรียลของตัวเลขคือสิ่งที่เรากำลังค้นหาโดยใช้ฟังก์ชันแบบเรียกซ้ำ checkFact () ในตัวอย่างด้านล่าง -
หากค่าเป็น 1 จะส่งกลับ 1 เนื่องจากแฟคทอเรียลเป็น 1 −
if (n == 1) return 1;
ถ้าไม่เช่นนั้น ฟังก์ชันแบบเรียกซ้ำจะถูกเรียกสำหรับการวนซ้ำต่อไปนี้ หากคุณต้องการค่า 5!
Interation1: 5 * checkFact (5 - 1); Interation2: 4 * checkFact (4 - 1); Interation3: 3 * checkFact (3 - 1); Interation4: 4 * checkFact (2 - 1);
ในการคำนวณแฟกทอเรียลโดยใช้การเรียกซ้ำ คุณสามารถลองเรียกใช้โค้ดต่อไปนี้ซึ่งแสดงสิ่งที่ทำข้างต้น -
ตัวอย่าง
using System; namespace Demo { class Factorial { public int checkFact(int n) { if (n == 1) return 1; else return n * checkFact(n - 1); } static void Main(string[] args) { int value = 9; int ret; Factorial fact = new Factorial(); ret = fact.checkFact(value); Console.WriteLine("Value is : {0}", ret ); Console.ReadLine(); } } }
ผลลัพธ์
Value is : 362880