double 형 자료형으로
ceil - 올림
floor - 내림
• 반올림
round 메서드를 사용하면 소수 첫째 자리에서 반올림한다
근데 소수 3째나 4째에서 하고 싶으면?
double res = 123.456789;
double rounded = round(res * 1000) / 1000.0;
이런 방식으로 하면 소수 3째자리에서 반올림한 걸 구할 수 있다
나눌때 / 10 형태가 아닌 / 10.0을 해줘야 되는걸 기억해두자
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <cmath>
using namespace std;
int main () {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int test_case;
cin >> test_case;
for(int t = 1; t <= test_case; t++){
vector<int> arr;
for(int i = 0; i < 10; i++){
int tmp;
cin >> tmp;
arr.push_back(tmp);
}
double res = 0;
sort(arr.begin(), arr.end());
for(int i = 1; i < 9; i++) res += arr[i];
res /= 8.0;
res = round(res);
cout << "#" << t << " " << static_cast<int>(res) << '\n';
}
}
'C++ 알고리즘 > 풀다가 알게된 것' 카테고리의 다른 글
벡터에서 최소/최대값 인덱스를 가져오려면? (0) | 2024.10.15 |
---|---|
우선순위큐 (1) | 2024.10.01 |
split 메서드 구현하기 (1) | 2024.08.27 |
조합 구하기 (0) | 2024.08.27 |
순열 구하기 - next_permutation, 재귀 (0) | 2024.08.27 |