Anomalne anulowanie (od Wolfram Alpha):
Anomalne anulowanie to „anulowanie” cyfr aib w liczniku i mianowniku ułamka a / b, co skutkuje ułamkiem równym oryginałowi. Zauważ, że jeśli w liczniku i mianowniku jest wiele różnych, ale różniących się liczb, występuje niejasność co do tego, które cyfry należy anulować, więc najprościej jest wykluczyć takie przypadki z rozpatrzenia. Połączyć
Mówiąc prosto, powiedz, że masz ułamek a / b
. Jeśli możesz skasować cyfry ułamka, aby utworzyć kolejną ułamek, c / d
który jest równy oryginalnej ( a / b = c / d
), można użyć anomalnego anulowania, aby uprościć ułamek.
Wyzwanie polega na stworzeniu programu lub funkcji, która wprowadzi ciąg ułamkowy w formie a/b
i wyświetli lub zwróci prawdziwą wartość, jeśli ułamek można uprościć za pomocą anomalnego anulowania, a w przeciwnym razie wartość fałsz. a
i b
zawsze będą niezerowymi dodatnimi liczbami całkowitymi. a
i b
zawsze będzie zawierać dwie lub więcej cyfr. Ponadto, wszystkie cyfry z obu a
lub b
nie zostanie odwołany (przyzwyczajenie dostać wejście 12/21
), co najmniej jedną cyfrę od a
i b
zostanie anulowana za każdym razem (przyzwyczajenie dostać wejście 43/21
), a końcowy wynik nie będzie 0
ani dla a
lub b
. Twój program musi skasować wszystkie typowe cyfry pomiędzy a
i b
(tj. W1231/1234
, musisz anulować a 1
, a 2
i a 3
). Jeśli istnieje wiele możliwości anulowania, najpierw wybierz lewą cyfrę (515/25 zmienia się na 15/2, a nie 51/2).
Przykłady:
Input Output Why
1019/5095 true Remove the 0 and the 9 from both sides of the fraction to get 11/55, which is equivalent.
16/64 true Remove the 6 from both sides, and get 1/4.
14/456 false Remove the 4s. 14/456 is not equal to 1/56.
1234/4329 false Remove the 2s, 3s, and 4s. 1234/4329 is not equal to 1/9.
515/25 false Remove the first 5 from each side. 15/2 is not equal to 515/25.
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!