반응형
https://www.acmicpc.net/problem/2004
#. C++ int 오버플로어 예측
여기서 n은 20억 이하다.
n이 거의 int 범위를 벗어날 것 같은느낌이 든다.
아니나 다를까
for문에서 int i가 5의 배수씩 커지면서 n까지 도는데
만약 i가 20억까지 왔는데, n이 딱 20억이야
그러면 i는 5을 곱해서 100억이 되면서 오버플로가 되버린다.~
//2004
#include<iostream>
using namespace std;
int main(){
long long n,m; cin>>n>>m;
long long countoftwo = 0;
long long countoffive = 0;
for(long long i = 2; i<= n; i*=2){
countoftwo += n/i;
}
for(long long i = 2; i<= m ;i*=2){
countoftwo -= m/i;
}
for(long long i = 2; i<= n-m; i*=2){
countoftwo -= (n-m)/i;
}
for(long long i = 5; i<= n; i*=5){
countoffive += n/i;
}
for(long long i = 5; i<= m; i*=5){
countoffive -= m/i;
}
for(long long i = 5; i<= n-m; i*=5){
countoffive -= (n-m)/i;
}
cout<<min(countoftwo,countoffive)<<"\n";
return 0;
// }
//FB1.
/*
여기서 n은 20억 이하다.
n이 거의 int 범위를 벗어날 것 같은느낌이 든다.
아니나 다를까
for문에서 int i가 5의 배수씩 커지면서 n까지 도는데
만약 i가 20억까지 왔는데, n이 딱 20억이야
그러면 i는 5을 곱해서 100억이 되면서 오버플로가 되버린다.~
*/
플라즈마 IT 블로그 - 코딩 공부 정리, IT 정보 공유
https://plasmacodeing.tistory.com/
조금이라도 도움이 되었다면 공감 및 댓글 주세요~~
반응형
'알고리즘 > 백준[BOJ] 오답노트' 카테고리의 다른 글
배열 초기화 방법 fill vs memset - 백준 알고리즘 오답노트 1260 (0) | 2019.05.06 |
---|---|
C 숫자 각 자리수 분해. 이,일의 자리수 분해 - 백준 알고리즘 오답노트 1110 (0) | 2019.05.06 |
알고리즘 문제풀이전에 할것. 자료구조 선택하기 - 백준 알고리즘 오답노트 1012 (0) | 2019.05.06 |
별 찍기 5 - 백준 알고리즘 오답노트 2442 (0) | 2019.05.06 |
그래프 탐색시 가로,세로 실수 - 백준 알고리즘 오답노트 1012 (0) | 2019.04.13 |