Tugas
Tulis program yang menggunakan senyawa yang hanya terdiri dari unsur-unsur dengan nomor atom kurang dari atau sama dengan 92 (Uranium), dan mengeluarkan massa molar dari senyawa tersebut grams/mole
.
Aturan dan Batasan
- Anda tidak boleh menggunakan fungsi yang secara langsung menghitung massa molar untuk Anda.
- Program Anda harus dapat dijalankan pada mesin offline.
- Anda DAPAT menggunakan file data terpisah. Isi dari file ini harus disediakan.
- Skor Anda adalah panjang program Anda dalam byte, ditambah panjang file data Anda dalam byte, jika Anda memilih untuk menggunakannya.
- Ini kode-golf , oleh karena itu, skor terendah menang.
Memasukkan
String yang berisi senyawa. String ini dapat dibaca STDIN
, diteruskan sebagai argumen, atau disetel ke variabel (harap tentukan yang mana). Berikut ini adalah semua input yang valid:
CH2
(satu Karbon, dua Hidrogen)(CH2)8
(8 Karbon, 16 Hidrogen)U
(1 Uranium)
Program Anda tidak perlu berfungsi untuk tanda kurung yang disematkan (yaitu ((CH3)2N4)4
), atau untuk senyawa apa pun yang mengandung unsur dengan nomor atom lebih besar dari 92. Jika program Anda tidak berfungsi untuk salah satu dari dua kasus di atas, ia harus menampilkan Invalid formula
untuk kasus tersebut - tidak ada perilaku yang tidak terdefinisi.
Keluaran
Anda harus menampilkan, ke STDOUT
atau ke variabel, massa molar senyawa di grams/mole
. Daftar massa atom unsur tersedia di sini (Wikipedia) . Jawaban Anda harus akurat untuk tempat desimal untuk senyawa yang mengandung kurang dari 100 atom (bulat).
Jika input tidak valid, Invalid formula
harus dikeluarkan.
Informasi tentang cara menghitung massa molar suatu senyawa dalam grams/mole
(Wikipedia).
Contohnya
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
jika massa atomnya 12.999
?
U1000000
lebih sulit untuk ditentukan ke titik desimal daripada massaU2