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

Chương trình tính giai thừa của một số trong C

Giai thừa là gì?

Giai thừa của số n (ký hiệu n!) là tích của tất cả các số nguyên dương từ 1 đến n. Theo quy ước: 0! = 1.

Ví dụ:

0! = 1
1! = 1
2! = 2×1 = 2
3! = 3×2×1 = 6
4! = 4×3×2×1 = 24
5! = 5×4×3×2×1 = 120
...
n! = n × (n-1) × (n-2) × ... × 1

Ví dụ

Input: n = 5 → Output: 120
Input: n = 6 → Output: 720

Có nhiều phương pháp tính giai thừa:

  • Sử dụng vòng lặp
  • Sử dụng đệ quy (đệ quy không hiệu quả với n lớn do tràn ngăn xếp)
  • Sử dụng hàm

Thuật toán (đệ quy)

Bắt đầu
Bước 1: Hàm factorial(int n)
    Nếu n == 0 trả về 1
    Trả về n * factorial(n-1)
Bước 2: Trong main(): khai báo num = 10, in factorial(num)
Kết thúc

Mã nguồn C

#include <stdio.h>

int factorial(int n) {
    if (n == 0) return 1;
    return n * factorial(n - 1);
}

int main() {
    int num = 10;
    printf("Giai thừa của %d là %d", num, factorial(num));
    return 0;
}

Kết quả C

Giai thừa của 10 là 3628800

Mã nguồn C++

#include <iostream>
using namespace std;

int factorial(int n) {
    if (n == 0) return 1;
    return n * factorial(n - 1);
}

int main() {
    int num = 7;
    cout << "Giai thừa của " << num << " là " << factorial(num) << endl;
    return 0;
}

Kết quả C++

Giai thừa của 7 là 5040