#23 - 나눗셈 [매우 쉬움]

2020. 7. 8. 18:36카테고리 없음

728x90

1÷8 = 0.125이다.

보통 이런 나눗셈은 약속된 수식을 통해 어떤 언어에서든 쉽게 계산할 수 있다.

하지만, 각각의 자료형은 정해진 크기를 가지고 있으므로, 유리수들 중 무한소수인 수들은 그 값을 모두 표현할 수 없다.

어떻게하면 내가 원하는 수준까지 나눗셈 결과를 출력할 수 있을까?

 

https://www.acmicpc.net/problem/1008

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

입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력: 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.

 

예제 1)

1 3

0.33333333333333333333333333333333

 

예제 2)

4 5

0.8

 

Solution)

전체 코드

핵심 포인트)

예를 들어, 1÷8을 계산할 때,

1에 8이 0번 들어가니까 정수부는 0이고,

계산되지 않은 정수 1이 남아 있으니까

10씩 곱해주며 동일한 과정을 반복하는 것이다.

1/8 = 0(정수부) ... 1

10/8 = 1 ... 2

20/8 = 2 ... 4

40/8 = 5 ... 0

=> 1/8 = 0.125

728x90