문제풀이/BOJ
[Python] BOJ/백준 1312번 소수
서채리
2021. 6. 29. 17:35
[문제]
https://www.acmicpc.net/problem/1312
1312번: 소수
피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다.
www.acmicpc.net
[풀이]
처음에 접근했던 방법에서 런타임 에러가 났다. 찾아보니 나눗셈을 수학적으로 접근해야 에러가 안 난다고 한다.
25 / 7을 할 경우 몫이 3이고 나머지가 4이다.
나눗셈은 이전 자릿수에서 구해진 나머지 수에 10을 곱한 후 나오는 몫과 나머지를 반복적으로 구한다.
이를 구하고자 하는 소수점 아래 자릿수인 n-1만큼 반복해서 구한다.
[코드]
if __name__ == '__main__':
a, b, n = map(int, input().split())
result = str(a / b)
print(result[result.index('.') + n])
- 제출 코드
if __name__ == '__main__':
a, b, n = map(int, input().split())
a %= b
for i in range(n-1):
a = (a*10) % b
print((a*10) // b)