본문 바로가기

Beakjoon/else

[백준] 1008번 A/B (C++)

문제

https://www.acmicpc.net/problem/1008

 

1008번: A/B

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

코드

way1

#include <iostream>

using namespace std;

int main()
{
    double a, b;
    cin >> a >> b;

    cout.precision(10);
    
    cout << a / b;
    return 0;
}

 

way2

#include <iostream>

using namespace std;

int main()
{
    double a, b;
    cin >> a >> b;

    cout << fixed;
    cout.precision(9);
    
    cout << a / b;
    return 0;
}

정리

절대오차 : 참 값에서 결괏값을 뺀 수치의 절댓값

상대오차 : 절대오차를 참 값으로 나눈 값

 

float의 상대오차는 약 10^-7

double의 상대오차는 약 10^-15

즉 이 문제에서는 절대오차 또는 상대오차가 10^-9 이하가 되여야 된다 했으므로 double 자료형을 사용해야 한다.

 

std::cout.precision(n) : 출력할 실수 전체 자리 수에서 n자리까지 표현 (정수부분, 소수부분 모두 고려)

std::fixed : 소수점 아래로만 고정 (소수부분만 고려)

fixed 후 cout.preciosion(n)을 사용할 경우 소수점 아래 n자리까지 표현

참조

https://longflash.tistory.com/575

https://st-lab.tistory.com/212