Все мы знаем, что всякий раз, когда рациональное число записывается в десятичном виде, результат либо завершается, либо (в конечном итоге) периодический. Например, когда 41/42 записано в десятичном виде, результат
0.9 761904 761904 761904 761904 761904 761904 761904 ...
с начальной последовательностью цифр, 0.9
за которой следует последовательность, 761904
повторяемая снова и снова. (Удобное обозначение для этого - то, 0.9(761904)
где круглые скобки окружают блок повторяющихся цифр.)
Ваша задача в этой задаче - взять положительное рациональное число, удалить первую цифру, являющуюся частью повторяющейся последовательности, и вернуть полученное рациональное число. Например, если мы сделаем это до 41/42, мы получим
0.9 61904 761904 761904 761904 761904 761904 761904 ...
или 0.9(619047)
для краткости 101/105.
Если рациональное число имеет конечное десятичное разложение, как у 1/4 = 0.25
, ничего не должно происходить. Вы можете думать о 1/4 либо как, 0.250000000...
либо как, 0.249999999...
но в любом случае удаление первой цифры повторяющейся части оставляет число без изменений.
Детали
- Входные данные представляют собой положительное рациональное число, либо в виде пары натуральных чисел, представляющих числитель и знаменатель, либо (если ваш язык выбора позволяет это сделать, и вы хотите) в качестве объекта рационального числа.
- Выход также является рациональным числом, также в любой форме. Если результатом является целое число, вы можете вернуть целое число вместо рационального числа.
- Если в качестве входных данных взять пару чисел, вы можете предположить, что они относительно простые; если вы выводите пару чисел в качестве выходных данных, вы должны сделать их относительно простыми.
- Будьте осторожны, чтобы найти первую цифру, которая начинает повторяющийся блок. Например, можно написать 41/42 как,
0.97(619047)
но это не делает 2041/2100 (с десятичным расширением0.97(190476)
) действительным ответом. - Можно предположить , что на входе вы получаете, то первый периодический цифра после десятичной точки, что делает
120/11
=10.909090909...
неверный ввод: (его первый периодический разряд можно считать0
в10
). Вы можете делать все, что вам нравится на таком входе. - Это код-гольф : выигрывает самое короткое решение.
Контрольные примеры
41/42 => 101/105
101/105 => 193/210
193/210 => 104/105
104/105 => 19/21
1/3 => 1/3
1/4 => 1/4
2017/1 => 2017/1
1/7 => 3/7
1/26 => 11/130
1234/9999 => 2341/9999
(2017,1)
.)
2/4
случиться на входе?
120/11
правильным ответом 111/11
или 210/11
?
111/11
за исключением того, что возвращается наиболее высоко голосованный ответ 210/11
, поэтому я позволю вам выбрать, чтобы избежать аннулирования существующих ответов.
2017
вместо2017/1
?