Giả sử chúng ta có một số n, chúng ta phải tìm số lượng các số không ở cuối của n !.
Vì vậy, nếu đầu vào là n =20, thì đầu ra sẽ là 4, là 20! =2432902008176640000
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau
-
đặt số lượng:=0
-
for i:=5, (n / i)> 1, update i:=i * 5, do
-
count:=count + (n / i)
-
-
số lần trả lại
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
Ví dụ
#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
int countTrailingZeros(int n) {
int count = 0;
for (int i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
main() {
int n = 20;
cout << "Number of trailing zeros: " << countTrailingZeros(n);
} Đầu vào
20
Đầu ra
Number of trailing zeros: 4