In questa sfida, il tuo compito è quello di prendere un anione e un catione e produrre la formula chimica del composto. L'input segue queste regole:
- Prendere in 2 stringhe (in qualsiasi ordine) che rappresentano l'anione e cationi, per esempio
F
,NH_4
oAl
. - Per assumere la carica di ogni ione, puoi averlo come parte della stringa separata da un punto di inserimento (ad es.
F^-1
) O prendere ulteriori argomenti numerici.- Nota: finché il tipo di input numerico è firmato, la carica dell'anione verrà trasmessa come numero negativo.
- I simboli saranno sempre reali e le cariche accurate.
L'output dovrebbe seguire queste regole:
- Utilizzare
_
per i pedici: Fe 2 O 3 sarebbeFe_2O_3
. - Prima il catione: NaCl, non ClNa.
- Molecola neutra: Li 2 O, non LiO o LiO - .
- Coefficienti più bassi possibili: Fe 2 O 3 , non Fe 4 O 6 .
- Nessun pedice: NaCl, non Na 1 Cl 1 .
- Nessun spostamento: NH 4 OH, non NH 5 O.
- Parentesi condizionali:
- Non usare le parentesi su uno ione a singolo atomo: MgCl 2 , non Mg (Cl) 2 .
- Non usare le parentesi se esiste solo uno degli ioni per molecola: KClO 3 , non K (ClO 3 ).
- Usa le parentesi se ci sono due o più di uno ione poliatomico: Be 3 (PO 4 ) 2 , non Be 3 PO 4 2 o Be 3 P 2 O 8 .
Ecco alcuni input e output di esempio aggiuntivi:
Input Output
Fe^+3, O^-2 Fe_2O_3
Fe^+2, O^-2 FeO
H^+1, SO_4^-2 H_2SO_4
Al^+3, SO_4^-2 Al_2(SO_4)_3
NH_4^+1, SO_4^-2 (NH_4)_2SO_4
Hg_2^+2, PO_4^-3 (Hg_2)_3(PO_4)_2
NH_4^+1, OH^-1 NH_4OH
Hg_2^+2, O_2^-2 Hg_2O_2
Dato che si tratta di code-golf , vince la risposta più breve in byte.
NO_3^-1
. Anche un altro caso di test dovrebbe essere il primo associato a un ^-2
, quindi sarebbe (C(NH_2)_3)_2...
. O un caso in cui lo ione necessario più di una volta inizia con una parentesi.
Fe_4(Fe(CN)_6)_3
per il blu di Prussia.
Fe^+2, OH^-1: Fe(OH)_2
per uno ione poliatomico con 1 di ciascun elemento (OH^-1
).