본문 바로가기
알고리즘연습/백준

[백준] 정수론및조합론 - 2004번 조합 0의 개수

by 밈밈무 2021. 8. 2.

문제

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

 

2004번: 조합 0의 개수

첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다.

www.acmicpc.net

 

풀이 

지난번에 풀었던 문제와 유사하다.

조합을 구하는 식을 생각해서 같은 방식으로 계산한다.

 

코드

package 정수론및조합론;

import java.util.Scanner;
public class No2004_조합0의개수 {

	static long[][] dp;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		
		long n=sc.nextLong();
		long m=sc.nextLong();
		
		long cnt_five=five(n)-five(n-m)-five(m);
		long cnt_two=two(n)-two(n-m)-two(m);
		
		System.out.println(Math.min(cnt_five, cnt_two));
	}
	
	static long five(long n) {
		int cnt=0;
		while(n>=5) {
			cnt+=(n/5);
			n/=5;
		}
		
		return cnt;
	}
	
	static long two(long n) {
		int cnt=0;
		while(n>=2) {
			cnt+=n/2;
			n/=2;
		}
		
		return cnt;
	}
}