แฟกทอเรียลของจำนวนเต็มที่ไม่เป็นลบ n คือผลคูณของจำนวนเต็มบวกทั้งหมดที่น้อยกว่าหรือเท่ากับ n
ตัวอย่างเช่น แฟกทอเรียลของ 4 คือ 24
4! = 4 * 3 * 2 *1 4! = 24
แฟคทอเรียลของจำนวนเต็มสามารถพบได้โดยใช้โปรแกรมแบบเรียกซ้ำหรือโปรแกรมแบบวนซ้ำ
โปรแกรมต่อไปนี้สาธิตโปรแกรมแบบเรียกซ้ำเพื่อค้นหาแฟกทอเรียลของตัวเลข -
ตัวอย่าง
#include <iostream> using namespace std; int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); } int main() { int n = 4; cout<<"Factorial of "<<n<<" is "<<fact(n); return 0; }
ผลลัพธ์
Factorial of 4 is 24
ในโปรแกรมข้างต้น ฟังก์ชัน fact() เป็นฟังก์ชันแบบเรียกซ้ำ ฟังก์ชัน main() เรียก fact() โดยใช้ตัวเลขที่ต้องการแฟกทอเรียล สิ่งนี้แสดงให้เห็นโดยข้อมูลโค้ดต่อไปนี้
cout<<"Factorial of "<<n<<" is "<<fact(n);
หากตัวเลขเป็น 0 หรือ 1 แล้ว fact() จะส่งกลับ 1 หากตัวเลขเป็นตัวเลขอื่น fact() จะเรียกตัวเองซ้ำด้วยค่า n-1
ซึ่งแสดงให้เห็นโดยใช้ข้อมูลโค้ดต่อไปนี้
int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); }