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

Chương trình tìm số chữ số 0 cuối cùng của giai thừa n trong C++

Giới thiệu

Cho số nguyên n, tìm số chữ số 0 liên tiếp ở cuối của n! (giai thừa). Số lượng chữ số 0 bằng số cặp thừa số (2, 5) trong phân tích thừa số nguyên tố. Vì số lượng thừa số 2 luôn nhiều hơn 5, ta chỉ cần đếm thừa số 5.

Công thức

Số chữ số 0 = n/5 + n/25 + n/125 + ... (chia nguyên cho các lũy thừa của 5).

Ví dụ

n = 20 → 20/5 = 4, 20/25 = 0 → Kết quả = 4. (20! = 2432902008176640000)

Ví dụ triển khai (C++)

#include <iostream>
using namespace std;

int countTrailingZeros(int n) {
    int count = 0;
    for (int i = 5; n / i >= 1; i *= 5)
        count += n / i;
    return count;
}

int main() {
    int n = 20;
    cout << "So chu so 0 cuoi cung cua " << n << "! la: " << countTrailingZeros(n);
    return 0;
}

Đầu vào

20

Đầu ra

So chu so 0 cuoi cung cua 20! la: 4