코딩/백준(알고리즘)
[백준/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