p와 x끼리 곱해서 더하는 아주 쉬운 문제이지만
- p가 소수점 이하 여섯 자리까지의 수를 가질 수 있음
- 정답과의 절대오차 혹은 상대오차가 10^-6 이하이면 정답으로 인정
이 두 조건들을 충족시키기 위해 추가되어야 하는 코드가 두 줄 있다.
cout << fixed; // 소수점 아래 값을 고정하는 코드 // cout.setf(ios::fixed); 같은 의미
precision(6); // 소수점 아래 값을 6으로 지정
precision()은 자릿 수를 조정하는 함수이다.
하지만 cout << fixed 후에 precision()을 쓰면 전체 자릿 수가 아닌 소수점 아래 값을 고정하게 된다.
cout << fixed는 cout.setf(ios::fixed)로 대신 쓰일 수 있으며, 설정을 해제하는 함수는 cout.unsetf(ios::fixed)이다.
#include <iostream>
#include <ios>
using namespace std;
int N, x[20];
float p[20];
int getResult();
int main() {
cin.tie(0); ios::sync_with_stdio;
cout << fixed; cout.precision(6);
int T; cin >> T;
for (int tc = 1; tc <= T; tc++) {
cin >> N;
for (int i = 0; i < N; i++) cin >> p[i] >> x[i];
cout << '#' << tc << ' ' << getResult() << "\n";
}
return 0;
}
int getResult() {
float result = 0;
for (int i = 0; i < N; i++) {
result += p[i] * x[i];
}
return result;
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 9229. 한빈이와 Spot Mart (0) | 2020.02.15 |
---|---|
[SWEA] 7728. 다양성 측정 (0) | 2019.06.29 |
[SWEA] 5603. 건초더미 (0) | 2019.05.06 |
[SWEA] 3142. 영준이와 신비한 뿔의 숲 (0) | 2019.05.06 |
[SWEA] 7102. 준홍이의 카드놀이 (0) | 2019.05.06 |
댓글