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

Tìm chữ số đầu tiên của giai thừa trong C++

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ tìm chữ số đầu tiên của n! (giai thừa của n).

Ví dụ

Input: 7
Output: 5 (vì 7! = 5040)

Mã nguồn ví dụ

#include <bits/stdc++.h>
using namespace std;

void findFirstDigitOfFactorial(int n) {
    long long int fact = 1;
    for (int i = 2; i <= n; i++) fact = fact * i;
    while (fact >= 10) fact = fact / 10;
    cout << fact << endl;
}

int main() {
    int n = 7;
    findFirstDigitOfFactorial(n);
    return 0;
}

Kết quả đầu ra

5

Lưu ý

Kiểu long long chỉ chứa được giai thừa đến 20! ≈ 2.4×10¹⁸. Với n lớn, cần dùng thư viện BigInteger hoặc logarit: log10(n!) = Σ log10(i), phần thập phân quyết định chữ số đầu.

Kết luận

Chương trình tìm đúng chữ số đầu tiên của giai thừa cho n nhỏ. Nếu bạn có thắc mắc, hãy để lại bình luận bên dưới.