Thử thách
Cho khối lượng phân tử có độ phân giải cao của một phân tử hữu cơ, tạo ra công thức phân tử của phân tử.
Giải trình
Đầu vào sẽ là một số duy nhất đến ba chữ số chính xác, khối lượng phân tử tương đối của phân tử.
Ở đây, khối lượng phân tử được định nghĩa là tổng khối lượng của các nguyên tử trong hợp chất. Vì bạn chỉ tìm thấy các công thức phân tử của các hợp chất hữu cơ, nên khối lượng nguyên tử bạn cần biết là:
- C , Carbon: 12.011
- H , hydro: 1.008
- Ô , Oxy: 15.999
- N , Nitơ: 14,007
Công thức của bạn chỉ nên chứa carbon, hydro, oxy hoặc nitơ.
Khi viết công thức, cần có dạng:
CaHbOcNd
Trong trường hợp các yếu tố này phải được theo thứ tự đó ( C -> H -> O -> N
, vì vậy C2O8N4H6
nên có C2H6O8N4
) và a
, b
, c
và d
là những con số của phần tử trước đó trong phân tử (tức là C2
phương tiện rằng có hai nguyên tử cacbon trong phân tử).
Nếu a
, b
, c
hoặc d
được không, yếu tố đó không nên được đưa vào công thức (ví dụ C2H6O2N0
nên C2H6O2
). Cuối cùng, nếu a
, b
, c
hoặc d
là một, bạn không nên bao gồm các số trong công thức (ví dụ C1H4
nên CH4
).
Đầu vào sẽ luôn hợp lệ (tức là sẽ có một phân tử có khối lượng đó). Nếu đầu vào không rõ ràng (nhiều phân tử có cùng khối lượng), bạn chỉ phải xuất một trong các phân tử. Làm thế nào bạn chọn phân tử này là tùy thuộc vào bạn.
Ví dụ làm việc
Giả sử đầu vào là 180.156
, chỉ có một sự kết hợp của các yếu tố có thể có khối lượng phân tử này:
12.011*6 + 1.008*12 + 15.999*6 + 14.007*0 = 180.156
Vì vậy, có:
- 6 nguyên tử cacbon
- 12 hydrogens
- 6 Oxy
- 0 Nitrogen
Do đó, đầu ra của bạn phải là:
C6H12O6
Thêm ví dụ
Input -> Output
28.054 -> C2H4
74.079 -> C3H6O2
75.067 -> C2H5O2N
18.015 -> H2O
Chiến thắng
Mã ngắn nhất trong byte thắng.
28054
)
12.011
là khối lượng nguyên tử tương đối của carbon, là trung bình có trọng số của khối lượng đồng vị tương đối của các đồng vị. Trong một quang phổ kế, nơi phân biệt các đồng vị khác nhau, bạn sẽ thấy chính xác 12
. Tương tự cho các nguyên tử khác.
672.336
có 24 giải pháp khả thi, bao gồm dung dịch nitơ tinh khiết và dung dịch hydro tinh khiết.