본문 바로가기
studylog

240419 백준1008번 A/B

by Nam Kyeongmin 2024. 4. 19.

차곡차곡 적립해야할 개념들을 정리해보자.

👩‍💻💭 int형의 변수들을 연산(예를 들어 A/B)한 후, 자료형을 변환하여(예를 들어 double로) 출력하고 싶을 땐

printf("%lf", (double)A/B); // double 자료형의 입출력은 %lf

 

👩‍💻💭  double 형은 소수점 6자리까지만 출력한다. 이 문제 같은 경우에는,

정수 A,B를 입력받고 예제 출력과 같이 소수점을 이용하여 결과값을 출력해야한다. 이때 출력의 조건으로 "실제 정답과 출력값의 절대오차 또는 상대오차가 10^-9 이하이면 정답이다."라는 구절을 확인할 수 있다. 즉슨, 실제 정답과 출력값은 10^-8 까지 동일해야한다는 사실을 파악할 수 있다.

 

그러나 앞서 언급한 것처럼 double 자료형은 소수점 6자리, 즉 10^-6까지만 출력한다. 따라서 예제 1번의 경우, double로 출력한 값은 0.3333330000000,,, 이지만 원하는 값은 0.3333333333333333333,,, 이기 때문에 오차범위가 10^-9자리 이내로 발생하여 오류가 발생하게 된다. 이러한 문제를 해결하기 위해 double 자료형을 소수점 몇째자리까지 출력할 것인지를 지정하는 부분이 추가적으로 필요하다는 것을 알 수 있다.

 

👩‍💻💭  결론적으로, 1,에서 살펴본 출력문에서,

printf("%0.9lf", (double)A/B); // lf 앞 0.n을 추가하면 소수점 n번째자리까지 연산하여 출력하는 것을 의미

 

 이런식으로 소수점 9번째자리까지 출력하겠다는 코드로 수정하여 실행한다면, 요구하는 조건에 부합하는 코드가 실행되는것을 확인할 수 있다.

 

<submit code>

// correct code
#include <stdio.h>

int main(){
	int A, B;
    scanf("%d %d", &A, &B);
    printf("%0.9lf", (double)A/B);
    
    return 0;
}

 

<result>

야호!

 

<오늘의 잔디밭>

2023년은 너무 휑해서 차마 올릴 수가.. 🥲

2024년 잔디밭을 잘 채워보자!! 🤓

'studylog' 카테고리의 다른 글

240624 가천대 DNA School 헬스케어 파이썬 분석 실무 1일차  (0) 2024.06.25
~240502 백준 review - [입출력과 사칙연산]  (0) 2024.05.02
231020 TIL  (0) 2023.10.20
231018 TIL  (1) 2023.10.18
231017 TIL  (0) 2023.10.18