문제 출처: www.acmicpc.net/problem/1008
1008번: A/B
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
1. 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
int main() | |
{ | |
double A, B; | |
cin >> A >> B; | |
cout.precision(10); | |
cout << A / B; | |
return 0; | |
} |
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 |