문제 설명

문제 링크

http://icpc.me/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

풀이

0의 개수를 구하기 위해서는 n! = k * 10^a에서 a를 구하면 된다. 이때 10을 만들기 위해서는 5와 2가 필요한데 n!에서 2의 개수는 항상 5의 개수보다 많기 때문에 n!에서 5의 개수를 구하면 된다.

코드

#include <cstdio>

int main() {
    int n; scanf("%d", &n);
    int ret = 0;
    while (n) {
        ret += n / 5;
        n /= 5;
    }
    printf("%d", ret);
}

'Algorithm > BOJ' 카테고리의 다른 글

백준[5430] AC  (0) 2021.10.29
백준[16234] 인구 이동  (0) 2021.10.29
백준[20208] 진우의 민트초코우유  (0) 2021.10.27
백준[1037] 약수  (0) 2021.10.26
백준[1270] 전쟁 - 땅따먹기  (0) 2021.10.22
복사했습니다!