Вызов
Учитывая формулу химического вещества, выведите M r соединения.
Уравнение
За каждым элементом в соединении следует число, которое обозначает номер указанного атома в соединении. Если числа нет, то в соединении есть только один атом.
Вот некоторые примеры:
- Этанол (C 2 H 6 O) будет
C2H6O
там, где есть два атома углерода, 6 атомов водорода и 1 атом кислорода - Гидроксид магния (MgO 2 H 2 ) будет
MgO2H2
там, где есть один атом магния, два атома кислорода и два атома водорода.
Обратите внимание, что вам никогда не придется обрабатывать скобки, и каждый элемент включается в формулу только один раз.
Хотя большинство людей, вероятно, будут придерживаться порядка, в котором они чувствуют себя наиболее комфортно, строгой системы заказов не существует. Например, вода может быть дана как H2O
или OH2
.
М р
Примечание: здесь предположим, что формула масса совпадает с молекулярной массой
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
Вы должны всегда давать выходные данные с одним десятичным знаком.
Так , например, этанол ( C2H6O
) имеет М р о , 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
?