문제 출처: www.acmicpc.net/problem/1008
1. 코드
2. 풀이
cout.precision(10);
나머지 부분에 대해서는 잘 알고 위에 있는 코드 부분에 대해 설명하겠다. 위 코드는 출력 시 큰 자리부터 10자리를 출력하겠다는 말이다. 만약 가로 안에 숫자가 3이라고 하면 출력시 큰 자리가 나온다 예를 들어 설명하겠다.
#include <iostream>
using namespace std;
int main()
{
double A = 1.2345678912;
cout.precision(10);
cout << A << endl; //출력: 1.234567891
cout.precision(3);
cout << A; //출력: 1.23
return 0;
}
위 코드를 보면 cout.precision(10)일 때는 맨 앞자리 1부터 시작해서 소수점 뒤에 있는 1까지 출력한다. 그래서 총 10자리가 출력이 되고 cout.precision(3)일 때는 맨 앞자리 1부터 소수점 뒤에 있는 3까지 총 3자리가 출력이 된다.
#include <iostream>
using namespace std;
int main()
{
double A = 1.234;
cout.precision(10);
cout << A << endl; //출력: 1.234
return 0;
}
그리고 초과하는 경우를 살펴보자. 10자리를 표현하고 싶지만 선언된 변수에 저장된 수는 1.234까지 밖에 없어서 그대로 출력을 진행한다. 그렇기 때문에 문제의 예제 입력 중 4 5에서 0.8이 나오고 1 3에서는 0.3333333333이 나온 것을 적용시킬 수 있다.
3. 느낀 점
C언어에서는 출력 조절하는 것이 printf에서 이루어졌는데 C++에서는 cout의 속성을 이용하여 조절하는게 조금 신기하게 느꼈다. 그리고 이렇게 모르는 부분이 많을 것 같아서 조금 걱정이다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10430번: 나머지 [C++] (0) | 2020.11.21 |
---|---|
백준 알고리즘 10869번: 사칙연산 [C++] (0) | 2020.11.20 |
백준 알고리즘 1914번: 하노이 탑 [C++] (0) | 2020.11.18 |
백준 알고리즘 10172번: 개 [C++] (0) | 2020.11.14 |
백준 알고리즘 2751번: 수 정렬하기 2 C언어 합병 정렬(merge sort) (0) | 2020.05.31 |