'전체 글'에 해당되는 글 84건
- 2020.05.17 :: [BOJ/2004] 조합 0의 개수
- 2020.05.17 :: [BOJ/1676] 팩토리얼 0의 개수
- 2020.05.16 :: [BOJ/10872] 팩토리얼
Algorithm/Problem Solving
2020. 5. 17. 14:59
(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)
문제 링크
- https://www.acmicpc.net/problem/2004
사용 알고리즘
-
풀이
- 끝자리가 0이 되려면 2와 5가 필요
- 따라서 0이 몇 개인지 알아내려면, N!를 소인수 분해하여 2와 5의 개수중 작은 수의 개수가 0의 개수
- 2의 개수 = n / 2^1 + n / 2^2 + n / 2^3...
- 5의 개수 = n / 5^1 + n / 5^2 + n / 5^3...
소스 코드
- https://github.com/moomini/algorithm/blob/master/boj/2004.cpp
#include <cstdio>
#include <vector>
using namespace std;
int main(void) {
long long n, m; scanf("%lld %lld", &n, &m);
long long two = 0, five = 0;
for (long long i = 2; i <= n; i *= 2) two += (n / i);
for (long long i = 5; i <= n; i *= 5) five += (n / i);
for (long long i = 2; i <= m; i *= 2) two -= (m / i);
for (long long i = 5; i <= m; i *= 5) five -= (m / i);
for (long long i = 2; i <= (n - m); i *= 2) two -= ((n - m )/ i);
for (long long i = 5; i <= (n - m); i *= 5) five -= ((n - m) / i);
printf("%lld\n", (five < two) ? five : two);
return 0;
}
|
cs |
'Algorithm > Problem Solving' 카테고리의 다른 글
[BOJ/11650] 좌표 정렬하기 (0) | 2020.05.19 |
---|---|
[BOJ/2751] 수 정렬하기 2 (0) | 2020.05.18 |
[BOJ/1676] 팩토리얼 0의 개수 (0) | 2020.05.17 |
[BOJ/10872] 팩토리얼 (0) | 2020.05.16 |
[BOJ/11653] 소인수분해 (0) | 2020.05.16 |
Algorithm/Problem Solving
2020. 5. 17. 14:18
(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)
문제 링크
- https://www.acmicpc.net/problem/1676
사용 알고리즘
-
풀이
- 끝자리가 0이 되려면 2와 5가 필요
- 따라서 0이 몇 개인지 알아내려면, N!를 소인수 분해하여 2와 5의 개수중 작은 수의 개수가 0의 개수
소스 코드
- https://github.com/moomini/algorithm/blob/master/boj/1676.cpp
#include <cstdio>
int main(void) {
int fivesCount = 0, twosCount = 0;
int n; for (scanf("%d", &n); n--;) {
int num = n + 1;
while (num % 5 == 0) {
num /= 5;
++fivesCount;
}
while (num % 2 == 0) {
num /= 2;
++twosCount;
}
}
printf("%d\n", (fivesCount < twosCount) ? fivesCount : twosCount);
return 0;
}
|
cs |
'Algorithm > Problem Solving' 카테고리의 다른 글
[BOJ/2751] 수 정렬하기 2 (0) | 2020.05.18 |
---|---|
[BOJ/2004] 조합 0의 개수 (0) | 2020.05.17 |
[BOJ/10872] 팩토리얼 (0) | 2020.05.16 |
[BOJ/11653] 소인수분해 (0) | 2020.05.16 |
[BOJ/6588] 골드바흐의 추측 (0) | 2020.05.15 |
Algorithm/Problem Solving
2020. 5. 16. 15:03
(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)
문제 링크
- https://www.acmicpc.net/problem/10872
사용 알고리즘
-
풀이
-
소스 코드
- https://github.com/moomini/algorithm/tree/master/boj
#include <cstdio> int main(void) { int ans = 1; int n; for (scanf("%d", &n); n--;) { ans *= (n + 1); } printf("%d\n", ans); return 0; } | cs |
'Algorithm > Problem Solving' 카테고리의 다른 글
[BOJ/2004] 조합 0의 개수 (0) | 2020.05.17 |
---|---|
[BOJ/1676] 팩토리얼 0의 개수 (0) | 2020.05.17 |
[BOJ/11653] 소인수분해 (0) | 2020.05.16 |
[BOJ/6588] 골드바흐의 추측 (0) | 2020.05.15 |
[BOJ/1929] 소수 구하기 (0) | 2020.05.14 |