Desafío
Dada la fórmula de una sustancia química, genera el M r del compuesto.
Ecuación
Cada elemento en el compuesto es seguido por un número que denota el número de dicho átomo en el compuesto. Si no hay un número, solo hay uno de ese átomo en el compuesto.
Algunos ejemplos son:
- El etanol (C 2 H 6 O) sería
C2H6O
donde hay dos átomos de carbono, 6 átomos de hidrógeno y 1 átomo de oxígeno. - El hidróxido de magnesio (MgO 2 H 2 ) sería
MgO2H2
donde hay un átomo de magnesio, dos átomos de oxígeno y dos átomos de hidrógeno.
Tenga en cuenta que nunca tendrá que manejar paréntesis y cada elemento se incluye solo una vez en la fórmula.
Si bien la mayoría de las personas probablemente se apegará al orden con el que se sienta más cómoda, no existe un sistema de pedido estricto. Por ejemplo, el agua puede administrarse como H2O
o OH2
.
M r
Nota: Aquí, suponga que la masa de la fórmula es igual a la masa molecular
La MR de un compuesto, la masa molecular, es la suma de los pesos atómicos de los átomos en la molécula.
Los únicos elementos y sus pesos atómicos a 1 decimal que debe soportar (hidrógeno a calcio, sin incluir gases nobles) son los siguientes. También se pueden encontrar aquí.
H - 1.0 Li - 6.9 Be - 9.0
B - 10.8 C - 12.0 N - 14.0
O - 16.0 F - 19.0 Na - 23.0
Mg - 24.3 Al - 27.0 Si - 28.1
P - 31.0 S - 32.1 Cl - 35.5
K - 39.1 Ca - 40.1
Siempre debe dar la salida a un decimal.
Por ejemplo, etanol ( C2H6O
) tiene un M r de, 46.0
ya que es la suma de los pesos atómicos de los elementos que contiene :
12.0 + 12.0 + 1.0 + 1.0 + 1.0 + 1.0 + 1.0 + 1.0 + 16.0
(2*C + 6*H + 1*O)
Entrada
Una sola cadena en el formato anterior. Puede garantizar que los elementos incluidos en la ecuación serán símbolos elementales reales.
No se garantiza que el compuesto dado exista en la realidad.
Salida
El total de Rm del compuesto, a 1 decimal.
Reglas
Las incorporaciones que tienen acceso a elementos o datos químicos no están permitidas (lo siento, Mathematica)
Ejemplos
Input > Output
CaCO3 > 100.1
H2SO4 > 98.1
SF6 > 146.1
C100H202O53 > 2250.0
Victorioso
El código más corto en bytes gana.
Esta publicación fue adoptada con permiso de caird coinheringaahing . (Publicación ahora eliminada)
NumberForm[#&@@#~ChemicalData~"MolecularMass",{9,1}]&
2H2O
:?