2016년 3월 2일 수요일

11571 - 분수를 소수로

1110 - 더하기 사이클 과 유사하게 풀었다.

소수점 자리가 반복되는 지점은 나눗셈의 나머지가 같은 부분이 나온다는 것이다. 같은 나머지 값이 나오면 그 부분부터 다시 반복되는건 당연한 사실이다.

우선 A/B 를 기약분수의 형태로 바꾼다.
손으로 나누기 과정을 직접 하듯이 수를 계속 나누면서 결과값(string)에 수를 계속 붙인다.
boolean값 배열을 놓고 연산 도중에 이미 나온 나머지값이 나온다면 나누기 작업을 중단한다. 그리고 이전에 그 나머지가 나온 순간부터 나누기를 중단한 곳 (현재 문자열의 끝) 까지가 반복되는 지점이라는 뜻이다.

반복되는 구간이 없다면 (0) 을 출력하고, 아니라면 반복되는 구간을 출력하도록 했다.
댓글 쓰기

게시글 목록