1008번 - A/B

문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력 값의 절대 오차 또는 상대오차가 10-9 이하이면 정답이다.
예제 입력 1
1 3
예제 출력
0.33333333333333333333333333333333
10-9 이하의 오차를 허용한다는 말은 꼭 소수 9번째 자리까지만 출력하라는 뜻이 아니다.
예제 입력 2
4 5
예제 출력 2
0.8
#문제 풀이 방법
이 문제도 기존 1000번, 1001번 문제와 동일하게 구현만 잘해주면 된다.
그런데 주의해야 할 점이 바로 나눗셈 연산이 들어간다는 것이다.
위의 예제와 같이 나눗셈을 할 경우, 완전히 나누어 떨어지지 않는 경우가 존재하기 때문에 문제가 발생할 수 있다.
문제에서 [실제 정답과 출력값의 절대 오차 또는 상대오차가 10-9 이하이면라고 조건을 주었으므로 소수점 자리를 9개 이상 출력하도록 해야할 것이다.
따라서
#C와 #C++는 변수 선언할 때 조심해야 하는데, double로 선언하면 될 것이고,
Python 같은 경우에는 그냥 진행해도 될 것이다.
(*왜 float도 있는데 double을 쓰냐고 물어보면
float의 상대오차는 약 10^-7 정도이고, double의 상대 오차는 약 10^-15 정도라고 한다. 이에 대해서도 나중에 글을 올려봐야할 것 같다.)
(**Python의 경우에는 나누기 연산 시 기본적으로 소수점 16번째자리까지 표현할 수 있다고 한다.)
#C
#include <stdlib.h>
#include <stdio.h>
int main()
{
double result;
double a, b;
scanf("%lf %lf", &a, &b);
result = a / b;
printf("%.9lf\n", result);
return 0;
}
#C++
#include <iostream>
using namespace std;
int main() {
double a,b;
cin >> a >> b;
cout.precision(10);
cout << a / b;
return 0;
}
#include <iostream>
using namespace std;
int main() {
double a,b;
cin >> a >> b;
cout.precision(9);
cout<<fixed;
cout << a / b;
return 0;
}
또는
#Python
a, b = map(int, input().split())
print(a / b)
반응형
'PS > 백준' 카테고리의 다른 글
[백준/Baekjoon]<2475번> 검증수 [C/C++/Python][Class 1] (0) | 2022.07.08 |
---|---|
[백준/Baekjoon]<2438번> 별 찍기 - 1 [C/C++/Python][Class 1] (0) | 2022.07.07 |
[백준/Baekjoon]<1330번> 두 수 비교하기 [C/C++/Python][Class 1] (0) | 2022.07.06 |
[백준/Baekjoon]<1001번> A-B [C/C++/Python][Class 1] (0) | 2022.07.04 |
[백준/Baekjoon]<1000번> A+B [C/C++/Python][Class 1] (0) | 2022.07.03 |