Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อคำนวณแฟกทอเรียลของตัวเลขโดยใช้การเรียกซ้ำ


แฟกทอเรียลของจำนวนเต็มที่ไม่เป็นลบ n คือผลคูณของจำนวนเต็มบวกทั้งหมดที่น้อยกว่าหรือเท่ากับ n

ตัวอย่างเช่น แฟกทอเรียลของ 7 คือ 5040

7! = 7 * 6 * 5 * 4 * 3 * 2 *1
7! = 5040

ให้เราดูโค้ดเพื่อคำนวณแฟกทอเรียลของตัวเลขโดยใช้การเรียกซ้ำ

ตัวอย่าง

#include <iostream>
using namespace std;
int fact(int n) {
   if ((n==0)||(n==1))
   return 1;
   else
   return n*fact(n-1);
}
int main() {
   cout<<"Factorial of 5 is "<<fact(5)<<endl;
   cout<<"Factorial of 3 is "<<fact(3)<<endl;
   cout<<"Factorial of 7 is "<<fact(7)<<endl;
   return 0;
}

ผลลัพธ์

Factorial of 5 is 120
Factorial of 3 is 6
Factorial of 7 is 5040

ในโปรแกรมข้างต้น ฟังก์ชัน fact() เป็นฟังก์ชันแบบเรียกซ้ำ ฟังก์ชัน main() เรียก fact() โดยใช้ตัวเลขที่ต้องการแฟกทอเรียล สิ่งนี้แสดงให้เห็นโดยข้อมูลโค้ดต่อไปนี้

cout<<"Factorial of 5 is "<<fact(5)<<endl;
cout<<"Factorial of 3 is "<<fact(3)<<endl;
cout<<"Factorial of 7 is "<<fact(7)<<endl;

หากตัวเลขเป็น 0 หรือ 1 แล้ว fact() จะส่งกลับ 1 หากตัวเลขเป็นตัวเลขอื่น fact() จะเรียกตัวเองซ้ำด้วยค่า n-1 นอกเหนือจากการเรียกตัวเองแบบเรียกซ้ำแล้ว fact() ยังคูณ n ด้วย fact(n-1) แบบเรียกซ้ำ ผลตอบแทนนี้

n*(n-1)*(n-2)....3*2*1 or the factorial of n

ซึ่งแสดงให้เห็นโดยใช้ข้อมูลโค้ดต่อไปนี้

int fact(int n) {
   if ((n==0)||(n==1))
   return 1;
   else
   return n*fact(n-1);
}