L'abbiamo fatto tutti, beh, forse no, ma creare il tuo linguaggio alieno e il tuo sistema di numerazione è un punto fermo soprattutto per la scrittura fantasy, ma per lo più è solo un'attività divertente.
Il compito è semplice, prendi due input:
Un elenco ordinato immette 10 [dieci] 'numeri' unici (qualsiasi carattere ASCII stampabile) e li interpreta, in ordine, come i valori 0, 1, 2, 3, ..., 9
+ Ci sono eccezioni a ciò che può essere un numero qui. Gli operatori aritmetici (+, -, *, /), le parentesi e gli spazi non possono essere usati come uno dei numeri.
Un problema aritmetico usando solo quei 'numeri'
E genera il risultato intero equivalente nella forma data.
Ecco un esempio:
INPUT
abcdefghij
bcd + efg + hij
OUTPUT
bdgi
Nell'esempio, l'elenco di input (puoi scegliere da quale forma l'elenco) di 'abcdefghij' corrisponde a '0123456789' proprio come 'hjkloiwdfp' corrisponderebbe anche a 1 a 1 con '0123456789' dove invece di 'a' associato a zero, 'h' lo fa. L'aritmetica che segue 'si traduce' in 123 + 456 + 789, che equivale a 1368. Questo deve quindi essere emesso nella forma che gli abbiamo dato, quindi b (che rappresenta 1) d (per 2) g (per 6) e i (per 8).
CASI TEST
abcdefghij
abc + def - ghij
-gedc
qwertyuiop
qwerty / uiop
e
%y83l;[=9|
(83l * 9) + 8%
y9|8
ALTRE REGOLE
- Sono vietate le scappatoie standard !
- Questo è il golf del codice, quindi vince la risposta più breve in byte.
- Deve essere un programma completo o una funzione che accetta gli ingressi e le uscite in qualunque formato funzioni meglio per te. (Non è possibile aggiungere ulteriori informazioni negli input, solo "numeri" e l'espressione.
- Usa la lingua che desideri (purché conforme ad altre regole)
1
per 5/3
, non 2
, a causa della divisione intera (non arrotondamento). Ciò non invalida la sfida, ma potrebbe essere necessario consentire risposte accettabili diverse per lo stesso caso di test (vedere la mia risposta T-SQL di seguito).
q.ioiopewioyetqorw...
. In tal caso, quale tipo di arrotondamento dovrebbe essere applicato?