코딩/백준(알고리즘)

[백준/C++] 1008번 : A/B

미스터박 2022. 11. 15. 17:38

백준 1008번 : A/B


풀이

#include <iostream>
using namespace std; // std::cout 대신 std::를 생략하고 cout만 쓰기 위함

int main(void) {
    double a, b;
    // 정수 A와 B를 입력받기 위한 변수 두개를 선언하자. 다만 소숫점
    // 계산을 위해 double 자료형으로 선언하여 이곳에 저장했다.
    double result; 
    // A/B의 값을 담기 위해 선언한 변수이다.
    // double은 소숫점을 포함한 수를 담을 수 있는 자료형으로,
    // double이 float보다 더 정밀한 값을 담을 수 있다. 자료형 자체의 크기가
    // float보다 더 크기 때문에 더 많은 데이터를 담을 수 있다. float는 소숫점
    // 이하 7자리, double은 소숫점 이하 16자리까지 표현할 수 있다고 한다
    
    cin >> a >> b;  // a와 b의 값을 입력받는다.
    result = a / b; // a/b의 값을 result 변수에 담는다.

    cout << fixed;
    cout.precision(9);
    // 기본적으로 cout은 double과 같은 부동소수점 자료형을 출력할때 정밀도가
    // 6으로 설정되어있다. 즉 숫자를 6개만 출력하고 나머지는 대략적으로
    // 표현해버린다. cout.precision(숫자)은 cout의 정밀도롤 재설정하는 함수이고,
    // cout << fixed;는 소수점 아래 부분만 제한 범위를 고정해라 이런 뜻이라고
    // 한다.
    // 그래서 위의 두 코드를 해석해보면 소숫점 아래 9자리를 표현하라 이렇게
    // 해석할 수 있다.
    
    cout << result << endl; // result 값을 출력하고 줄바꿈.
    return 0;
}


백준 단계별로 풀어보기 중 첫 번째 카테고리 "입출력과 사칙연산"의 문제 중 하나이다. fixed, precision 같은 경우 알고리즘 문제를 풀 때 소수점 처리를 위해 유용하게 사용되기 때문에, 구글링 해서 관련 정보를 찾아보는 것도 좋은 선택이 될 것 같다.


문제 링크

백준 1008번 : A/B
https://www.acmicpc.net/problem/1008

 

1008번: A/B

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net