반응형
https://www.acmicpc.net/problem/1008
1차시도 - 틀렸습니다
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << double(a) / b;
}
[틀린 이유]
문제에서 '실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다' 라고 하였으나, 개무시했음 ^^
double 자료형은 소수점 이하 6자리까지만 나오기 때문에 상대 오차가 10-9 를 넘을 수도 있음
2차 시도- 맞았습니다
#include <iostream>
using namespace std;
int main()
{
long double a, b;
cin >> a >> b;
cout << fixed;
cout.precision(9);
cout << double(a) / b;
}
그냥 cout.precision(int)를 하면 전체 자리수가 그 자리수로 고정된다. 이 말인 즉슨 소수점 이하 자리수 뿐만 아니라 소수점 위(?) 자리수도 저 자리수에 포함이 된다는 뜻이다.
소수점 자리수에 국한해서 자릿수를 제한하기 위해서는 위의 코드와 같이 cout << fixed; 이후에 cout.precision(int)를 사용해야 한다.
반응형
'잡다한 시도 > 코테 준비는 하는거니?' 카테고리의 다른 글
[C++] Priority Queue의 custom sort (6) | 2021.03.19 |
---|---|
[BOJ] 2750번: 수 정렬하기 (0) | 2019.10.13 |
[BOJ] 2875번: 대회 or 인턴 (0) | 2019.03.30 |
[BOJ] 11721번: 열 개씩 끊어 출력하기 (0) | 2018.11.19 |
[BOJ] 1764번: 듣보잡 (0) | 2018.11.18 |