Wszyscy wiemy, że ilekroć liczba wymierna jest zapisywana dziesiętnie, wynik kończy się albo (ewentualnie) jest okresowy. Na przykład, gdy liczba 41/42 jest zapisywana dziesiętnie, wynikiem jest
0.9 761904 761904 761904 761904 761904 761904 761904 ...
z początkową sekwencją cyfr, 0.9
a następnie sekwencją 761904
powtarzaną w kółko. (Wygodnym zapisem jest 0.9(761904)
to, gdy nawiasy otaczają blok powtarzających się cyfr).
Twoim celem w tym wyzwaniu jest pobranie dodatniej liczby wymiernej, usunięcie pierwszej cyfry wchodzącej w skład powtarzalnej sekwencji i zwrócenie wynikowej liczby wymiernej. Na przykład, jeśli zrobimy to do 41/42, otrzymamy
0.9 61904 761904 761904 761904 761904 761904 761904 ...
lub 0.9(619047)
w skrócie, czyli 101/105.
Jeśli liczba wymierna ma końcowe rozszerzenie dziesiętne, tak jak 1/4 = 0.25
, nic nie powinno się wydarzyć. Możesz myśleć o 1/4 zarówno jako, jak 0.250000000...
i tak, 0.249999999...
ale w każdym przypadku usunięcie pierwszej cyfry powtarzającej się części pozostawia liczbę bez zmian.
Detale
- Dane wejściowe to dodatnia liczba wymierna, albo jako para dodatnich liczb całkowitych reprezentujących licznik i mianownik, lub (jeśli twój język na to pozwala i chcesz) jako jakiś obiekt liczby wymiernej.
- Wynik jest również liczbą wymierną, również w dowolnej formie. Jeśli wynikiem jest liczba całkowita, możesz zwrócić liczbę całkowitą zamiast liczby wymiernej.
- Jeśli weźmiesz parę liczb jako dane wejściowe, możesz założyć, że są względnie pierwsze; jeśli tworzysz parę liczb jako wynik, musisz uczynić je względnie pierwszymi.
- Uważaj, aby znaleźć pierwszą cyfrę rozpoczynającą powtarzający się blok. Na przykład można napisać 41/42 jako,
0.97(619047)
ale to nie czyni0.97(190476)
poprawnej odpowiedzi 2041/2100 (z rozszerzeniem dziesiętnym ). - Możesz założyć, że na otrzymywanym wejściu pierwsza cyfra okresowa znajduje się po przecinku, co oznacza
120/11
=10.909090909...
nieprawidłowe wejście: (jej pierwszą cyfrą okresową może być0
in10
). Na podstawie takich danych możesz zrobić co chcesz. - To jest golf golfowy : wygrywa najkrótsze rozwiązanie.
Przypadki testowe
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
zdarzyć na wejściu?
120/11
poprawną odpowiedzią 111/11
lub 210/11
?
111/11
z wyjątkiem tego, że w tej chwili powraca najbardziej pozytywna odpowiedź 210/11
, więc pozwolę ci wybrać, aby uniknąć unieważnienia istniejących odpowiedzi.
2017
zamiast2017/1
?