挑战
给定化学式,输出化合物的M r。
方程
化合物中的每个元素后跟一个数字,表示化合物中所述原子的数目。如果没有数字,则化合物中只有一个原子。
一些例子是:
- 乙醇(C 2 H 6 O)将
C2H6O
存在两个碳原子,6个氢原子和1个氧原子 - 氢氧化镁(MgO 2 H 2)将
MgO2H2
存在一个镁原子,两个氧原子和两个氢原子。
请注意,您将不必处理方括号,并且每个元素在公式中仅包含一次。
虽然大多数人可能会坚持自己最满意的顺序,但没有严格的订购系统。例如,水可以是H2O
或OH2
。
中号[R
注意:此处,假设分子式质量与分子质量相同
化合物的M r,即分子量,是分子中原子的原子量的总和。
您必须支持的唯一元素及其原子量(小数点后一位)(氢到钙,不包括稀有气体)如下。他们也可以在这里找到
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
您应该始终将输出保留到小数点后一位。
例如,乙醇(C2H6O
)的M r为,46.0
因为它是其中元素的原子量之和:
12.0 + 12.0 + 1.0 + 1.0 + 1.0 + 1.0 + 1.0 + 1.0 + 16.0
(2*C + 6*H + 1*O)
输入值
具有上述格式的单个字符串。您可以保证等式中包含的元素将是实际的元素符号。
给定的化合物不能保证确实存在。
输出量
化合物的总M r,小数点后一位。
规则
禁止访问元素或化学数据的内建函数(对不起,Mathematica)
例子
Input > Output
CaCO3 > 100.1
H2SO4 > 98.1
SF6 > 146.1
C100H202O53 > 2250.0
获奖
以字节为单位的最短代码获胜。
该职位是在caird coinheringaahing的允许下通过的。(现在删除帖子)
NumberForm[#&@@#~ChemicalData~"MolecularMass",{9,1}]&
2H2O
?