| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 151307 | 李鸣 | 相对分子质量 | C++ | Accepted | 2 MS | 272 KB | 1151 | 2026-04-11 16:35:49 |
#include <iostream> #include <string> #include <cctype> using namespace std; // 获取原子量 int getMass(char c) { switch(c) { case 'H': return 1; case 'C': return 12; case 'N': return 14; case 'O': return 16; case 'F': return 19; case 'P': return 31; case 'S': return 32; case 'K': return 39; default: return 0; } } int main() { int n; cin >> n; while (n--) { string s; cin >> s; int sum = 0; int len = s.size(); for (int i = 0; i < len; ) { // 是字母 if (isalpha(s[i])) { int m = getMass(s[i]); i++; // 看后面是不是数字 int num = 0; while (i < len && isdigit(s[i])) { num = num * 10 + (s[i] - '0'); i++; } if (num == 0) num = 1; sum += m * num; } else { i++; } } cout << sum << endl; } return 0; }