Tarefa
Escreva um programa que absorva um composto composto apenas de elementos com um número atômico menor ou igual a 92 (Urânio) e produz a massa molar do composto em grams/mole
.
Regras e Restrições
- Você não pode usar uma função que calcule diretamente massas molares para você.
- Seu programa deve ser capaz de executar em uma máquina offline.
- Você pode usar um arquivo de dados separado. O conteúdo deste arquivo deve ser fornecido.
- Sua pontuação é o comprimento do seu programa em bytes, mais o tamanho do seu arquivo de dados em bytes, se você optar por usá-lo.
- Este é o código-golfe , portanto, a pontuação mais baixa vence.
Entrada
Uma sequência contendo o composto. Essa string pode ser lida STDIN
, passada como argumento ou definida como uma variável (especifique qual). A seguir estão todas as entradas válidas:
CH2
(um carbono, dois hidrogênios)(CH2)8
(8 carbonos, 16 hidrogênios)U
(1 urânio)
Não é necessário que o seu programa funcione entre parênteses incorporados (ie ((CH3)2N4)4
) nem em qualquer composto que contenha um elemento com número atômico maior que 92. Se o seu programa não funcionar em nenhum dos dois casos acima, ele deve gerar saída Invalid formula
para esses casos - nenhum comportamento indefinido.
Resultado
Você deve produzir, para STDOUT
ou para uma variável, a massa molar do composto em grams/mole
. Uma lista de massas atômicas de elementos está disponível aqui (Wikipedia) . Sua resposta deve ser precisa com a casa decimal para compostos que contenham menos de 100 átomos (arredondado).
Se a entrada for inválida, Invalid formula
deve ser emitida.
Informações sobre o cálculo da massa molar de um composto em grams/mole
(Wikipedia).
Exemplos
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
se a massa atômica é 12.999
?
U1000000
é mais difícil determinar até o ponto decimal do que a massa deU2