Run ID:50738

提交时间:2023-07-12 16:31:39

#include <iostream> #include <cstring> using namespace std; int main(){ int n; cin>>n; while(n--){ char s[110]; cin>>s; int sum = 0;//总质量 int cnt = 0;//原子个数 int len = strlen(s); for(int i=0; i<len; ){ cnt = 0; if(s[i] == 'H'){ if(!isdigit(s[i+1])){ sum += 1; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*1; } }else if(s[i] == 'C'){ if(!isdigit(s[i+1])){ sum += 12; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*12; } }else if(s[i] == 'N'){ if(!isdigit(s[i+1])){ sum += 14; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*14; } }else if(s[i] == 'O'){ if(!isdigit(s[i+1])){ sum += 16; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*16; } }else if(s[i] == 'F'){ if(!isdigit(s[i+1])){ sum += 19; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*19; } }else if(s[i] == 'P'){ if(!isdigit(s[i+1])){ sum += 31; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*31; } }else if(s[i] == 'S'){ if(!isdigit(s[i+1])){ sum += 32; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*32; } }else if(s[i] == 'K'){ if(!isdigit(s[i+1])){ sum += 39; i++; }else { while(isdigit(s[i+1])){ cnt = cnt*10 + (s[i+1]-'0'); i++; } i++; sum += cnt*39; } } } cout<<sum<<endl; } return 0; }