728x90
반응형

문제

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

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10의 -9승까지 허용한다.

예제 입력 1

1 3

예제 출력 1

0.33333333333333333333333333333333

예제 입력 2

4 5

예제 출력 2

0.8

 

내가 작성한 코드 (C++ 성공)

#include <iostream>

using namespace std;

int main(){

    double a, b;

    cin >> a >> b;

    cout.precision(15);
    cout << a/b << endl;

    return 0;
}

 

정리

처음에 아래와 같이 제출을 했는데 틀렸다.

#include <iostream>
#include <string>

using namespace std;

int main(){

    long double a, b;

    cin >> a;
    cin >> b;

    cout.precision(9);
    cout << a/b << endl;

    return 0;
}

성공한 코드와 실패한 코드의 차이점은 소수점 자릿수에 있었다.

cout.precision(9)  -> 실패
cout.precision(15) -> 성공

예제 출력 1번에서 결과 값을 출력할 때 15자리까지 출력이 되어서 15라고 수정했는데 맞았다.
처음에 10의 -9승까지라고해서 소수점 9자리까지 수정하면 되나 했었는데 틀려서 당황했다.
그래서 출력값 자릿수 그대로 가져와 했더니 성공했다.

728x90
반응형
복사했습니다!