Desafio
Dada a massa molecular de alta resolução de uma molécula orgânica, produz a fórmula molecular da molécula.
Explicação
A entrada será um número único com três casas decimais de precisão, a massa molecular relativa da molécula.
Aqui, a massa molecular é definida como a soma das massas dos átomos no composto. Como você só encontra as fórmulas moleculares dos compostos orgânicos, as massas atômicas que você precisa conhecer são:
- C , carbono: 12.011
- H , hidrogênio: 1.008
- O , oxigênio: 15.999
- N , nitrogênio: 14.007
Sua fórmula deve sempre conter apenas carbono, hidrogênio, oxigênio ou nitrogênio.
Ao escrever a fórmula, ela deve assumir a forma:
CaHbOcNd
Onde os elementos devem estar nessa ordem ( C -> H -> O -> N
, por isso C2O8N4H6
deve ser C2H6O8N4
) e a
, b
, c
ed
são números do elemento precedente na molécula (isto é, C2
significa que há dois átomos de carbono na molécula).
Se a
, b
, c
ou d
são iguais a zero, este elemento não deve ser incluído na fórmula geral (por exemplo, C2H6O2N0
deve ser C2H6O2
). Finalmente, se a
, b
, c
ou d
é um, você não deve incluir o número na fórmula (por exemplo, C1H4
deve serCH4
).
A entrada sempre será válida (ou seja, haverá uma molécula com essa massa). Se a entrada for ambígua (várias moléculas têm a mesma massa), você deve produzir apenas uma das moléculas. Como você escolhe esta molécula é com você.
Exemplo Trabalhado
Suponha que a entrada seja 180.156
, existe apenas uma combinação dos elementos que podem ter essa massa molecular:
12.011*6 + 1.008*12 + 15.999*6 + 14.007*0 = 180.156
Então existem:
- 6 carbonos
- 12 Hidrogênios
- 6 Oxygens
- 0 nitrogênio
Portanto, sua saída deve ser:
C6H12O6
Mais exemplos
Input -> Output
28.054 -> C2H4
74.079 -> C3H6O2
75.067 -> C2H5O2N
18.015 -> H2O
Ganhando
O menor código em bytes vence.
28054
)
12.011
é a massa atômica relativa do carbono, que é uma média ponderada das massas isotópicas relativas dos isótopos. Em um espectrômetro de massa, onde diferentes isótopos são distinguidos, você deve ver exatamente 12
. Semelhante para outros átomos.
672.336
possui 24 soluções possíveis, incluindo uma solução de nitrogênio puro e uma de hidrogênio puro.