Завдання
Напишіть програму, яка містить сполуку, виготовлену виключно з елементів, атомне число яких менше або дорівнює 92 (Уран), і виводить молярну масу сполуки в grams/mole.
Правила та обмеження
- Ви не можете використовувати функцію, яка безпосередньо обчислює молярні маси для вас.
- Ваша програма повинна мати можливість працювати на автономному пристрої.
- Ви МОЖЕТЕ використовувати окремий файл даних. Вміст цього файлу повинен бути наданий.
- Ваш бал - це довжина вашої програми в байтах, а також довжина вашого файлу даних у байтах, якщо ви вирішите використовувати її.
- Це код-гольф , тому виграє найнижчий бал.
Вхідні дані
Рядок, що містить сполуку. Цей рядок може бути прочитаний STDIN, переданий як аргумент або встановлений у змінну (вкажіть, будь ласка). Нижче наведено всі дійсні входи:
CH2(один вуглець, два водень)(CH2)8(8 вуглець, 16 водню)U(1 Уран)
Вашій програмі не потрібно функціонувати для вбудованих дужок (тобто ((CH3)2N4)4), а також для будь-якого з'єднання, що містить елемент з атомним числом більше 92. Якщо ваша програма не функціонує ні в одному з перерахованих вище випадків, вона повинна виводити Invalid formulaдля таких випадків - немає невизначеної поведінки.
Вихідні дані
Вам слід вивести STDOUTмолярну масу сполуки на змінну або до її змінної grams/mole. Перелік атомних мас елементів доступний тут (Вікіпедія) . Ваша відповідь повинна бути точною до десяткового знаку для сполук, що містять менше 100 атомів (округлих).
Якщо вхід недійсний, Invalid formulaнеобхідно вивести його.
Інформація про обчислення молярної маси сполуки в grams/mole(Вікіпедія).
Приклади
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якщо атомна маса 12.999?
U1000000важче визначити до десяткової крапки, ніж масуU2