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.