Bài tập
Viết chương trình lấy một hợp chất chỉ gồm các nguyên tố có số nguyên tử nhỏ hơn hoặc bằng 92 (Urani) và tạo ra khối lượng mol của hợp chất grams/mole
.
Quy tắc và hạn chế
- Bạn không thể sử dụng hàm tính toán trực tiếp khối lượng mol cho bạn.
- Chương trình của bạn phải có khả năng chạy trên máy ngoại tuyến.
- Bạn có thể sử dụng một tệp dữ liệu riêng biệt. Nội dung của tập tin này phải được cung cấp.
- Điểm của bạn là độ dài chương trình của bạn tính bằng byte, cộng với độ dài của tệp dữ liệu tính theo byte, bạn nên chọn sử dụng một byte.
- Đây là môn đánh gôn , do đó, điểm số thấp nhất sẽ thắng.
Đầu vào
Một chuỗi chứa hợp chất. Chuỗi này có thể được đọc qua STDIN
, chuyển qua làm đối số hoặc được đặt thành một biến (vui lòng chỉ định chuỗi nào). Sau đây là tất cả các đầu vào hợp lệ:
CH2
(một Carbon, hai Hydrogens)(CH2)8
(8 nguyên tử cacbon, 16 hydrogens)U
(1 Urani)
Chương trình của bạn không bắt buộc phải hoạt động cho dấu ngoặc đơn (nghĩa là ((CH3)2N4)4
), cũng như đối với bất kỳ hợp chất nào có chứa một phần tử có số nguyên tử lớn hơn 92. Nếu chương trình của bạn không hoạt động cho một trong hai trường hợp trên, nó phải xuất ra Invalid formula
cho các trường hợp đó - không có hành vi không xác định.
Đầu ra
Bạn nên xuất, đến STDOUT
hoặc tới một biến, khối lượng mol của hợp chất trong grams/mole
. Một danh sách các khối nguyên tử của các nguyên tố có sẵn ở đây (Wikipedia) . Câu trả lời của bạn phải chính xác đến vị trí thập phân cho các hợp chất chứa ít hơn 100 nguyên tử (làm tròn).
Nếu đầu vào không hợp lệ, Invalid formula
phải được xuất ra.
Thông tin về tính toán khối lượng mol của hợp chất trong grams/mole
(Wikipedia).
Ví dụ
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
nếu khối lượng nguyên tử là 12.999
?
U1000000
khó xác định đến dấu thập phân hơn khối lượng củaU2