반응형
출처 => https://www.acmicpc.net/problem/1008
문제
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.
예제 입력 1 복사
1 3
예제 출력 1 복사
0.33333333333333333333333333333333
10-9 이하의 오차를 허용한다는 말은 꼭 소수 9번째 자리까지만 출력하라는 뜻이 아니다.
예제 입력 2 복사
4 5
예제 출력 2 복사
0.8
소스코드 및 실행 결과
1
2
3
4
5
6
7
8
9
10
|
#include<iostream>
using namespace std;
int main() {
double a, b;
cin >> a >> b;
cout.precision(10);
//소수점 아래 9번째 자리까지 출력
cout << a / b << endl;
}
|
cs |
오답 원인
1. precision()함수
문제에서 10의 -9 까지의 오차를 허용한다 하였고, 출력 예시로 0.333333333이 출력되는 것으로 보아 출력되는 소수점이 자리까지 고려를 해야 했다.
2. double 형 사용
숫자를 입력할 때 int형이 아닌 double형으로 작성을 해야 하였다.
3. result라는 또다른 변수 사용
가장 간단한 코드가 좋은 코드! 그냥 a/b를 출력하면 되는데 이를 result라는 또다른 변수를 사용하여 result=(double)a/b;라고 지정을 하였다.
728x90
반응형
'💻 개인공부 💻 > 알고리즘' 카테고리의 다른 글
[백준 - 10951] A+B - 4 (feat. EOF) (0) | 2020.07.31 |
---|---|
[백준 - 10171] 고양이 (0) | 2020.07.31 |
[2018 국민대 알고리즘대회 예제 - 1] (0) | 2020.07.30 |
[백준 - 1920] 수 찾기(feat. 이진탐색 알고리즘) / C++ (0) | 2020.07.04 |
[백준 - 2178] 미로 탐색 (feat. 너비우선탐색) / C++ (0) | 2020.07.03 |