[백준BOJ1008/C++풀이] A/B

현도영·2023년 5월 2일
0

백준풀이

목록 보기
5/18

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


쉬운 문제인 줄 알았는데 신경쓸 부분이 좀 있더라고요. 제가 처음에 작성한 코드는 아래와 같습니다.

#include <iostream>
using namespace std;
float a, b;

int main() {
	cin >> a >> b;
	cout << a / b;
	return 0;
}

풀이

왜 틀렸지 했는데... 실수형(double)으로 선언/변환해야 합니다. float은 소수점 이하 6자리. double은 소수점 이하 15자리를 나타나기 때문에 double 값을 쓰는게 더 좋습니다.

'실제 정답과 출력값의 절대오차 또는 상대오차가 10^-9 이하'

또한 이 조건을 지켜서 출력해야 됩니다.

소수점이 최소 n번째까지 출력하도록 도와주는 cout.precision(n) 을 이용해야 됩니다. 저의 경우는 9로 했더니 틀렸다고 나와서 10으로 정해줬습니다.


사실 아직도 조금 헷갈립니다. 왜 9가 아니라 10일까요? C++에 더 적응하고 공부할 필요성을 느꼈습니다


제출

#include <iostream>
using namespace std;
int a, b;

int main() {
	cin >> a >> b;
	cout.precision(10);
	cout << (double)a / (double)b;
	return 0;
}
profile
코딩초보의 공부용

0개의 댓글