Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tính giai thừa bằng đệ quy


Giai thừa của số nguyên không âm n là tích của tất cả các số nguyên dương nhỏ hơn hoặc bằng n.

Ví dụ: Giai thừa của 7 là 5040.

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

Mã tính giai thừa bằng đệ quy:

Ví dụ

#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 << "Giai thừa của 5 là " << fact(5) << endl;
  cout << "Giai thừa của 3 là " << fact(3) << endl;
  cout << "Giai thừa của 7 là " << fact(7) << endl;
  return 0;
}

Kết quả đầu ra

Giai thừa của 5 là 120
Giai thừa của 3 là 6
Giai thừa của 7 là 5040

Trong chương trình, hàm fact() là hàm đệ quy. main() gọi fact() với số cần tính:

cout << "Giai thừa của 5 là " << fact(5) << endl;
cout << "Giai thừa của 3 là " << fact(3) << endl;
cout << "Giai thừa của 7 là " << fact(7) << endl;

Nếu số là 0 hoặc 1, fact() trả về 1. Nếu khác, fact() gọi đệ quy với n-1 và nhân với n. Cho ra n×(n-1)×...×3×2×1:

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