BOJ : 조합 0의 개수 [2004]

재현·2021년 5월 2일
0

1. 문제


nCm의 끝자리 의 개수를 출력하는 프로그램을 작성하시오.

출처 : https://www.acmicpc.net/problem/2004

2. 아이디어


  • 팩토리얼을 사용하지 말자(시간초과)
    1. 끝자리가 0일 조건 : 10의 배수
    2. 10 = 2 * 5
    3. nCm 내에 있는 2와 5 중 최소값 출력

3. 코드


mine

import sys

input = lambda: sys.stdin.readline()
n, m = map(int, input().split())
def countNumber(n, k):
    count = 0
    while n:
        n //= k
        count += n
    return count
twoCount = countNumber(n, 2) - countNumber(m, 2) - countNumber(n - m, 2)
fiveCount = countNumber(n, 5) - countNumber(m, 5) - countNumber(n - m, 5)
print(min(twoCount, fiveCount))
profile
성장형 프로그래머

0개의 댓글