일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백준
- 표준 입출력
- 매크로
- 이분그래프
- correlation coefficient
- 입/출력
- 엑셀
- Django의 편의성
- 연결요소
- 입출력 패턴
- c++
- UI한글변경
- EOF
- Django란
- 시간복잡도
- string 메소드
- 2557
- scanf
- double ended queue
- string 함수
- 프레임워크와 라이브러리의 차이
- 구조체와 클래스의 공통점 및 차이점
- 알고리즘 공부방법
- 자료구조
- iOS14
- 장고란
- vscode
- k-eta
- getline
- Django Nodejs 차이점
Archives
- Today
- Total
Storage Gonie
(16) [C++, Java] 백준 No.1676 : 팩토리얼 0의 개수 본문
반응형
문제
풀이
자세한 풀이 :
# C++(나의 풀이)
- 팩토리얼을 펼쳤을 때 각각의 수를 소인수분해 해서 5의 개수를 셈
- 이것보다는 백준 풀이가 훨씬 간단하다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> vec;
for (int i = 1; i <= n; i++)
{
int num = i;
for (int j = 2; j * j <= i; j++)
{
while (num % j == 0)
{
vec.push_back(j);
num = num / j;
}
}
if (num > 1)
vec.push_back(num);
}
cout << count(vec.begin(), vec.end(), 5) << endl;
}
# C++(백준 풀이)
- 1~N까지의 숫자에서 5^1 = 5의 배수, 5^2 = 25의 배수, 5^3 = 125의 배수, 5^k이 n보다 작을 때 까지 이들의 개수를 구함.
- 이 개수는 N / 5^1 + N / 5^2 + N / 5^3 + ... 이런 방식으로 구할 수 있음.
#include <iostream>
using namespace std;
int main() {
int ans = 0;
int n;
cin >> n;
for (int i=5; i<=n; i*=5)
ans += n/i;
cout << ans << '\n';
}
# Java
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ans = 0;
for (int i=5; i<=n; i*=5) {
ans += n/i;
}
System.out.println(ans);
}
}
반응형
'알고리즘 > 백준풀이7. 수학' 카테고리의 다른 글
(17) [C++, Java] 백준 No.2004 : 조합 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