Tìm số lượng chữ số 0 liên tiếp ở cuối của n! (giai thừa). Không cần tính giai thừa lớn, chỉ cần đếm số ước số 5 (vì 2 dư thừa). Công thức: n/5 + n/25 + n/125 + ...
Ví dụ: 4! = 24 → 0; 5! = 120 → 1; 6! = 720 → 1.
Chương trình
#include <stdio.h>
static int trailing_Zeroes(int n) {
int count = 0;
while (n > 0) {
count += n / 5;
n /= 5;
}
return count;
}
int main(void) {
int n;
printf("enter integer1: "); scanf("%d", &n);
printf("Trailing zeros of %d! = %d\n", n, trailing_Zeroes(n));
printf("enter integer2: "); scanf("%d", &n);
printf("Trailing zeros of %d! = %d\n", n, trailing_Zeroes(n));
return 0;
}
Kết quả
enter integer1: 5 Trailing zeros of 5! = 1 enter integer2: 6 Trailing zeros of 6! = 1