음.. 엄.. 이렇게 푸는게 맞다고 생각했는데 틀렸다.
0부터 9까지는 반올림 안 하니깐 그대로 출력되고 10이상은 반올림을 해야하고..
최대가 99,999,999라 반올림하면 100,000,000라 2,100,000,000보다 작아서 터지지도 않고.. 실제로 저 값 넣어보니 100,000,000이 나왔다.
음.. 모르겠다.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
scanf("%d", &n);
int len = to_string(n).length();
for(int i = 1; i < len; i++){
int tmp = pow(10, i);
if(n > tmp){
if(n%tmp >= 5*tmp/10){
n = n/tmp*tmp;
n += tmp;
}
}
}
printf("%d", n);
}
ㅋㅋㅋ 반올림이 내가 아는 그 반올림이었다. 난 또 백준에서 새로 정의해준 반올림 저대로 하는 줄 알았음ㅋㅋ 정답률 낮은 건 나같은 사람들이 많기 때문일 것이다.
+) 정수 연산에서 실수 계산용 함수는 안 쓰는게 좋다. 그냥 10씩 곱해나가자
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
scanf("%d", &n);
int len = to_string(n).length();
int ten = 10;
for(int i = 1; i < len; i++){
if(n > ten){
if(n%ten >= 5*ten/10){
n = n/ten*ten;
n += ten;
}
else {
n = n/ten*ten;
}
}
ten *= 10;
}
printf("%d", n);
}
내림도 구현해줬다
'백준' 카테고리의 다른 글
10989 수 정렬하기 3 (0) | 2019.11.01 |
---|---|
1252 이진수 덧셈 (0) | 2019.10.27 |
9455 박스 (0) | 2019.10.27 |
10163 색종이 (0) | 2019.10.27 |
1408 24 (0) | 2019.10.27 |