본문 바로가기
알고리즘/소스코드

KOREATECH 1008: 순환 소수

by cjw.git 2021. 1. 2.

Link : judge.koreatech.ac.kr/problem.php?id=1008


Python

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from sys import stdin
 
testcase = int(stdin.readline().strip())
 
while testcase:
    a, b = map(int, stdin.readline().strip().split())
    front = a // b
    calc = (a % b) * 10
    first = calc // 10
    memory = dict()
    back = []
    idx = 0
    while calc != 0:
        back.append(calc // b)
        if (calc % b) == first:
            back = [str(i) for i in back]
            print(str(front) + '.' '(' + ''.join(back) + ')')  # 순순환소수
            break
        elif (calc % b) in memory:
            back = [str(i) for i in back]
            print(str(front) + '.' + ''.join(back[0:memory[calc % b] + 1]) +
                  '(' + ''.join(back[memory[calc % b] + 1: idx + 1]) + ')')  # 혼순환소수
            break
        memory[(calc % b)] = idx
        calc = (calc % b) * 10
        idx += 1
    else:
        back = [str(i) for i in back]
        print(str(front) + '.' + ''.join(back) + '(0)')
    testcase -= 1
cs

FeedBack

  1.  

 

 

 

cjw.git@gmail.com

댓글