문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10-9 까지 허용한다.
예제입력
1 3
예제출력
0.33333333333333333333333333333333
이 문제는 무지 간단해 보이는데 한가지를 모르면 좀 어려울수도 있습니다.
그냥 무턱대고 cout << a / b << endl; 로 돌진할 수도 있는데
크레이도 틀렸다가 다시 맞춘 문제입니다 :)
사실 크레이 전문분야는 C++이 아니라 C#이고 과거에는 C언어였었던 지라 이 부분은 잘 몰랐지요 :)
이 문제는 예제출력에 힌트가 있습니다.
소숫점이 매우 길지 않습니까?
0.3333333333333333333333333333...
그리고 문제 지문에 절대/상대 오차는 10-9 까지 허용한다. 라고 되어 있기 때문에
소숫점 9자리까지 맞추면 되는 문제이긴 하지요.
cout << a / b << endl; 는 출력결과가 그다시 정확하지 않게 나옵니다.
이럴 경우 자릿수를 지정하는 함수를 사용해주어야 하는데요.
cout.precision(20); 이라고 다음에 출력할 소숫점 자릿수를 지정해주시면 됩니다.
아래 답안 소스에서 파란 색 부분이 해결책이지요 :)
#include <iostream>
using namespace std;
int main()
{
double a=0, b=0;
cin >> a >> b;
cout.precision(20);
cout << a / b << endl;
return 0;
}
'코딩과 알고리즘' 카테고리의 다른 글
아스키 코드표 (2) | 2019.06.20 |
---|---|
백준 알고리즘 4673번 풀이와 해설 (0) | 2019.06.20 |
백준 알고리즘 3차 도전 (0) | 2019.06.20 |
백준 알고리즘 2차 도전. (0) | 2019.06.20 |
백준 알고리즘 첫번째 문제는 1000번 (0) | 2019.06.20 |