Computer Science/Algorithm

BOJ 15792: A/B -2 [Python 3]

무니화니 2022. 12. 30. 18:39

오늘의 문제는 계산을 요하는 간단한 문제이다.

어렵진 않으나 만약 나중에 또 풀려고 하면 기억이 안 날 것 같아 정리하려고 한다.

 

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으로 표시된다.