일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 표준 입출력
- Django의 편의성
- EOF
- 백준
- 엑셀
- iOS14
- 2557
- UI한글변경
- getline
- vscode
- string 함수
- Django란
- 이분그래프
- 연결요소
- 장고란
- correlation coefficient
- 입/출력
- scanf
- string 메소드
- 프레임워크와 라이브러리의 차이
- 알고리즘 공부방법
- 시간복잡도
- 입출력 패턴
- 자료구조
- Django Nodejs 차이점
- 구조체와 클래스의 공통점 및 차이점
- k-eta
- c++
- 매크로
- double ended queue
Archives
- Today
- Total
Storage Gonie
(17) [C++, Java] 백준 No.2004 : 조합 0의 개수 본문
반응형
문제
풀이
자세한 풀이 :
# C++
- 인수분해한 결과에서 2의 개수를 구할때, 바로 이전 문제에서 5의 개수를 구할 때 사용한 방법을 똑같이 사용하면 된다.
- 단, i*=2, i*=5의 결과가 int형을 넘을 수 있으므로 long long 형을 사용한다.
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n, m; // 1 <= m <= n <= 2,000,000,000
cin >> n >> m; // nCm = n! / m!(n-m)!
int two = 0;
for (long long i = 2; i <= n; i*=2)
two = two + (n/i);
for (long long i = 2; i <= m; i*=2)
two = two - (m/i);
for (long long i = 2; i <= (n-m); i*=2)
two = two - ((n-m)/i);
int five = 0;
for (long long i = 5; i <= n; i*=5)
five = five + (n/i);
for (long long i = 5; i <= m; i*=5)
five = five - (m/i);
for (long long i = 5; i <= (n-m); i*=5)
five = five - ((n-m)/i);
cout << min(two, five) << "\n";
}
# Java
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
long m = sc.nextLong();
long two = 0, five = 0;
for (long i=2; i<=n; i*=2) {
two += n/i;
}
for (long i=2; i<=n-m; i*=2) {
two -= (n-m)/i;
}
for (long i=2; i<=m; i*=2) {
two -= m/i;
}
for (long i=5; i<=n; i*=5) {
five += n/i;
}
for (long i=5; i<=n-m; i*=5) {
five -= (n-m)/i;
}
for (long i=5; i<=m; i*=5) {
five -= m/i;
}
System.out.println(Math.min(two,five));
}
}
반응형
'알고리즘 > 백준풀이7. 수학' 카테고리의 다른 글
(16) [C++, Java] 백준 No.1676 : 팩토리얼 0의 개수 (0) | 2019.05.08 |
---|---|
(15) [C++, Java] 백준 No.10872 : 팩토리얼 (0) | 2019.05.08 |
(14) [C++, Java] 백준 No.11653 : 소인수분해 (0) | 2019.05.08 |
(13) [C++, Java] 백준 No.6588 : 골드바흐의 추측 (0) | 2019.05.08 |
(12) [C++, Java] 백준 No.1929 : 소수 구하기 (0) | 2019.05.07 |
Comments