求 a/b 的小数表现形式。如果 a 可以整除 b 则不需要小数点。如果是有限小数,则可以直接输出。如果是无限循环小数,则需要把小数循环的部分用"()"括起来。
数据范围: ,
两个整数a和b,其中
0 <= a <= 1000 000
1 <= b <= 10 000
一个字符串,该分数的小数表现形式
10 1
10
10/1 = 10
1 2
0.5
1/2 = 0.5
1 3
0.(3)
1/3 = 0.333333...
1 6
0.1(6)
1/6 = 0.16666666....
1 7
0.(142857)
1 / 7 = 0.1428571428...
# 精华答案的Python版 def compute(): a,b = list(map(int,input().split())) mod = a % b quo1 = a // b # 如果整除 if not mod: return quo1 modList = [] # 如果非整除 while mod: # 将余数储存在列表 modList.append(mod) mod = mod*10 % b # 如果余数出现两次 if mod in modList: # 循环开始的位置为i loopStartIdx = modList.index(mod) # format result quo2 = str(quo1) + '.' for i in range(loopStartIdx): quo2 += str(modList[i]*10//b) quo2 += '(' for i in range(loopStartIdx,len(modList)): quo2 += str(modList[i]*10//b) return quo2 + ')' print(compute())