오늘의 문제는 계산을 요하는 간단한 문제이다.
어렵진 않으나 만약 나중에 또 풀려고 하면 기억이 안 날 것 같아 정리하려고 한다.
a,b=map(int,input().split())
print(a//b, end='')
if a%b:
i=0
print('.', end='')
while a%b and i<1000:
a=a%b*10
i+=1
print(a//b, end='')
우리가 보통 자연수끼리 나누기를 할 때 사용하는 알고리즘이다.
1번처럼, 숫자가 완벽하게 나누어 떨어지지 않을 때, 우리는 0을 뒤에 붙혀서 그 이후 수로 나눈다.
해당 줄이 a=a%b*10에 대한 내용이다.
30 나누기 9를 해서, 남은 나머지 3에 10배를 한 30이 a에 저장되는데, 이를 2번에서 볼 수 있다.
몫인 3은 위에 .3으로 표시된다.
'Computer Science > Algorithm' 카테고리의 다른 글
BOJ 1644: 소수의 연속합 [Python 3] (0) | 2022.12.30 |
---|---|
BOJ 10951: A+B -4 [Python 3] (0) | 2022.12.30 |
BOJ 15711: 환상의 짝꿍 [Python 3] (0) | 2022.12.29 |
BOJ 2206: 벽 부수고 이동하기 [Python 3] (1) | 2022.12.29 |
BOJ 1654: 랜선 자르기 [Python 3] (0) | 2022.12.29 |