알고리즘 문제/BOJ
2033번 반올림
parkit
2020. 4. 9. 00:22
728x90
반응형
https://www.acmicpc.net/problem/2033
수학 구현 floor ceil round 반올림 올림 내림 팁 Tip 개념 생각 암기 복습 코테 코딩테스트 stoi 올림피아드 math
원래 숫자 = n
1의 자리에서 반올림 : ((n + 5) / 10) * 10
10의 자리에서 반올림 : ((n + 50) / 100) * 100
100의 자리에서 반올림 : ((n + 500) / 1000) * 1000
.
.
.
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 | #include<bits/stdc++.h> using namespace std; string s; /* 1의 자리 반올림 : +5 → /10 → *10 10의 자리 반올림 : +50 → /100 → *100 */ int main() { //freopen("C:\\Users\\park7\\Desktop\\buba.in.6", "r", stdin); cin.tie(0); cin >> s; int cnt = s.length() - 1, n = stoi(s), L = 10, Add = 5; while (cnt--) { n = ((n + Add) / L) * L; Add *= 10; L *= 10; } printf("%d\n", n); return 0; } | cs |
728x90
반응형