Annullamento anomalo (da Wolfram Alpha):
La cancellazione anomala è una "cancellazione" delle cifre di a e b nel numeratore e denominatore di una frazione a / b che risulta in una frazione uguale all'originale. Si noti che se ci sono conteggi multipli ma diversi di una o più cifre nel numeratore e nel denominatore, vi è ambiguità su quali cifre annullare, quindi è più semplice escludere tali casi dalla considerazione. collegamento
In termini semplici, supponiamo che tu abbia una frazione a / b
. Se è possibile annullare le cifre nella frazione per creare un'altra frazione c / d
uguale all'originale ( a / b = c / d
), è possibile utilizzare la cancellazione anomala per semplificare la frazione.
La tua sfida è quella di creare un programma o una funzione che inserisca una stringa di frazione nel modulo a/b
e produca o restituisca un valore di verità se la frazione può essere semplificata usando una cancellazione anomala e un valore di falsa in caso contrario. a
e b
saranno sempre numeri interi diversi da zero. a
e b
avrà sempre due o più cifre. Inoltre, tutte le cifre da uno dei due a
o b
non verranno cancellate (Non riceverai l'input 12/21
), almeno una cifra da a
e b
verrà cancellata ogni volta (Non otterrai l'input 43/21
), e il risultato finale non sarà mai 0
per a
o b
. Il tuo programma deve cancellare tutte le cifre comuni tra a
e b
(es. In1231/1234
, è necessario annullare a 1
, a 2
e a 3
). Se esistono più possibilità di cancellazione, selezionare prima la cifra più a sinistra (515/25 diventa 15/2 e non 51/2).
Esempi:
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.
Questo è code-golf , quindi vince il codice più breve in byte!