チャレンジ
化学式が与えられたら、化合物のM rを出力します。
方程式
化合物の各要素の後には、化合物の原子の数を示す数字が続きます。数字がない場合、化合物にはその原子が1つしかありません。
以下に例を示します。
- エタノール(C 2 H 6 O)は
C2H6O
、2つの炭素原子、6つの水素原子、1つの酸素原子がある場所です。 - 水酸化マグネシウム(MgO 2 H 2)
MgO2H2
は、1つのマグネシウム原子、2つの酸素原子、2つの水素原子がある場所です。
角括弧を処理する必要は決してなく、各要素は式に一度だけ含まれることに注意してください。
ほとんどの人はおそらく最も快適だと感じる順序に固執するでしょうが、厳密な順序付けシステムはありません。例えば、水のいずれかとして与えられてもよいH2O
、またはOH2
。
M r
注:ここでは、式質量が分子質量と同じであると仮定します
化合物のM r(分子量)は、分子内の原子の原子量の合計です。
サポートしなければならない唯一の元素とその小数点以下1桁までの原子量(希ガスを含まないカルシウムへの水素)は次のとおりです。こちらにもあります
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
出力は常に小数点以下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(小数点以下1桁まで)。
ルール
要素または化学データにアクセスするビルトインは許可されていません(ごめんなさいMathematica)
例
Input > Output
CaCO3 > 100.1
H2SO4 > 98.1
SF6 > 146.1
C100H202O53 > 2250.0
勝ち
バイト単位の最短コードが優先されます。
この投稿は、ケア共犯の許可を得て採択されました。(投稿は削除されました)
NumberForm[#&@@#~ChemicalData~"MolecularMass",{9,1}]&
2H2O
ますか?