728x90
https://www.acmicpc.net/problem/2004
문제
${n \choose m}$의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 n, m (0 ≤ m ≤ n ≤ 2,000,000,000, n ≠ 0)이 들어온다.
출력
첫째 줄에 ${n \choose m}$의 끝자리 0의 개수를 출력한다.
728x90
예제 입력 1
25 12
예제 출력 1
2
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int m = scan.nextInt();
int nm = n - m;
int cnt2 = get(n, 2) - get(m, 2) - get(nm, 2);
int cnt5 = get(n, 5) - get(m, 5) - get(nm, 5);
int ans = cnt2 < cnt5 ? cnt2 : cnt5;
System.out.println(ans);
}
static int get(int num, int k) {
int cnt = 0;
while(num >= k) {
cnt += num / k;
num /= k;
}
return cnt;
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 18111] 마인크래프트 (java) (1) | 2023.01.15 |
---|---|
[백준, BOJ 15829] Hashing (java) (0) | 2023.01.15 |
[백준, BOJ 1676] 팩토리얼 0의 개수 (java) (0) | 2023.01.12 |
[백준, BOJ 9375] 패션왕 신해빈 (python) (0) | 2023.01.09 |
[백준, BOJ 4101] 크냐? (python) (0) | 2023.01.08 |