Todos sabemos que cada vez que se escribe un número racional en decimal, el resultado termina o es (eventualmente) periódico. Por ejemplo, cuando 41/42 se escribe en decimal, el resultado es
0.9 761904 761904 761904 761904 761904 761904 761904 ...
con una secuencia inicial de dígitos 0.9
seguida por la secuencia 761904
repetida una y otra vez. (Una notación conveniente para esto es 0.9(761904)
donde los paréntesis rodean el bloque de dígitos repetidos).
Su objetivo en este desafío es tomar un número racional positivo, eliminar el primer dígito que forma parte de la secuencia repetitiva y devolver el número racional resultante. Por ejemplo, si hacemos esto a 41/42, obtenemos
0.9 61904 761904 761904 761904 761904 761904 761904 ...
o 0.9(619047)
para abreviar, que es 101/105.
Si el número racional tiene una expansión decimal final, como 1/4 = lo 0.25
hace, no debería pasar nada. Puede pensar en 1/4 como 0.250000000...
o como, 0.249999999...
pero en cualquier caso, eliminar el primer dígito de la parte que se repite deja el número sin cambios.
Detalles
- La entrada es un número racional positivo, ya sea como un par de enteros positivos que representan el numerador y el denominador, o (si su lenguaje de elección lo permite y desea) como algún tipo de objeto de número racional.
- La salida también es un número racional, también en cualquier forma. Si el resultado es un entero, puede devolver el entero en lugar de un número racional.
- Si toma un par de números como entrada, puede suponer que son relativamente primos; si produce un par de números como salida, debe hacer que sean relativamente primos.
- Tenga cuidado de encontrar el primer dígito que comienza un bloque repetitivo. Por ejemplo, uno podría escribir 41/42 como
0.97(619047)
pero eso no hace que 2041/2100 (con la expansión decimal0.97(190476)
) sea una respuesta válida. - Puede suponer que en la entrada que obtiene, el primer dígito periódico va después del punto decimal, haciendo
120/11
=10.909090909...
entrada no válida: (su primer dígito periódico podría considerarse el0
in10
). Puede hacer lo que quiera en dicha entrada. - Este es el código de golf : la solución más corta gana.
Casos de prueba
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
suceder en la entrada?
120/11
la respuesta correcta 111/11
o 210/11
?
111/11
que la respuesta más altamente votada en este momento regresa 210/11
, así que te dejaré elegir para evitar invalidar las respuestas existentes.
2017
lugar de2017/1
?