Tarea
Escriba un programa que tome un compuesto hecho únicamente de elementos con un número atómico menor o igual a 92 (Uranio), y genera la masa molar del compuesto en grams/mole
.
Reglas y restricciones
- No puede usar una función que calcule directamente las masas molares por usted.
- Su programa debe poder ejecutarse en una máquina fuera de línea.
- PUEDE usar un archivo de datos separado. Se debe proporcionar el contenido de este archivo.
- Su puntaje es la longitud de su programa en bytes, más la longitud de su archivo de datos en bytes, en caso de que elija usar uno.
- Este es el código de golf , por lo tanto, gana la puntuación más baja.
Entrada
Una cadena que contiene el compuesto. Esta cadena puede leerse STDIN
, pasarse como argumento o establecerse en una variable (especifique cuál). Las siguientes son todas las entradas válidas:
CH2
(un carbono, dos hidrógenos)(CH2)8
(8 Carbones, 16 Hidrógenos)U
(1 uranio)
No es necesario que su programa funcione para paréntesis incrustados (es decir ((CH3)2N4)4
), ni para ningún compuesto que contenga un elemento con un número atómico mayor que 92. Si su programa no funciona para ninguno de los dos casos anteriores, debe generar resultados Invalid formula
para tales casos: Sin comportamiento indefinido.
Salida
Debe generar, STDOUT
ao para una variable, la masa molar del compuesto en grams/mole
. Una lista de masas atómicas de elementos está disponible aquí (Wikipedia) . Su respuesta debe ser precisa al lugar decimal para los compuestos que contienen menos de 100 átomos (redondeados).
Si la entrada no es válida, se Invalid formula
debe generar.
Información sobre el cálculo de la masa molar de un compuesto en grams/mole
(Wikipedia).
Ejemplos
Input Output
H2O 18.015
O 15.999 (16 acceptable)
C6H2(NO2)3CH3 227.132
FOOF 69.995
C6H12Op3 Invalid formula
Np 237 (or Invalid formula)
((C)3)4 144.132 (or Invalid formula)
CodeGolf Invalid formula
13
si la masa atómica es 12.999
?
U1000000
es más difícil de determinar al punto decimal que la masa deU2