[C++] 백준 1008번 문제 : A / B - 소수점 고정, 소수점 N자리

wansuper·2023년 2월 11일
0

CodingTest

목록 보기
1/34

오답 코드

#include <iostream>

using namespace std;

int main() {
    float a, b = 0;
    cin >> a; 
    cin >> b;
    cout << (double)(a / b);
}

정답 코드

#include <iostream>

using namespace std;

int main() {
	double a, b;
	cin >> a >> b;
	cout << fixed;
	cout.precision(9);
	cout << a / b;
}

[오답 요인]

  1. '실제 정답과 출력값의 절대오차 또는 상대오차가 10^(-9) 이하이면 정답이다.' 라는 문구를 그대로 무시해버렸다. 즉, 출력과 실제 정답 간의 오차가 0.000000001 이하여야 한다는 것인데 기존에 입력했던 대로 코드를 제출하면 1 / 3 = 0.333333 만 출력이 된다. 이는 0.3333330000... 으로 처리되면서 오차가 조건을 만족하지 못하게 된다.

  2. fixed와 precision를 몰랐다.

  • fixed : 소수점을 고정시켜서 표현
  • precision(int n) : 소수점 n자리까지 표현
    사용 방법 : 위 두 함수를 연달아 작성하면 된다.
cout << fixed;
cout.precision(9);
// 소수점을 고정시켜서 표현할건데 소수점 아래 9자리로 하겠다.
profile
🚗 Autonomous Vehicle 🖥️ Study Alone

0개의 댓글