-
[백준-2004] 조합 0의 개수 - Java공부/백준 2022. 6. 13. 17:13728x90
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
백준 2004번 조합 0의 개수 자바 풀이
난이도: 실버2
[백준-1676] 팩토리얼 0의 개수 - Java
https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 백준 1676 팩토리얼 0의 개수..
binsblog.tistory.com
위의 문제 풀이방법과 비슷하다.
조합을 이용하였기 때문에
예를 들어 10C2인 경우
10!/(8!*2!)이다.
이런 경우 10!의 5의 개수는 2개, 2의 개수는 8개이다.
8!의 5의 개수는 1개, 2의 개수는 7개이다.
2!의 5의 개수는 0개, 2의 개수는 1개이다.
10C2를 계산할 경우
5의 개수는 2-1개 즉 1개,
2의 개수는 8-7-1개 즉 0개이다.
5의 개수와 2의 개수 중 최소값 만큼 0의 개수가 존재한다.
코드
import java.util.*;public class back2004 {public static void main(String args[]){Scanner scanner=new Scanner(System.in);long num1=scanner.nextLong();long num2=scanner.nextLong();long count5=count_five(num1)-count_five(num1-num2)-count_five(num2);long count2=count_two(num1)-count_two(num1-num2)-count_two(num2);System.out.println(Math.min(count5, count2));}static long count_five(long num){int count=0;while(num>=5){count+=num/5;num/=5;}return count;}static long count_two(long num){int count=0;while(num>=2){count+=num/2;num/=2;}return count;}}728x90반응형'공부 > 백준' 카테고리의 다른 글
[백준-4949] 균형잡힌 세상 - Java (0) 2022.06.15 [백준-11866] 요세푸스 문제0 - Java (0) 2022.06.14 [백준-25285] 심준의 병역판정검사 - Java (0) 2022.06.12 [백준-1676] 팩토리얼 0의 개수 - Java (0) 2022.06.10 [백준-10845] 큐 - Java (0) 2022.06.09