1 Star 0 Fork 0

LLL2343 / vJudge

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1586.cpp 969 Bytes
一键复制 编辑 原始数据 按行查看 历史
lll2343 提交于 2022-03-03 19:35 . 1587
#include<stdio.h>
#include<iostream>
#include<string>
#include<string.h>
#include<map>
using namespace std;
map<char,float> cpm = {{'C',12.01},{'H',1.008},{'O',16.00},{'N',14.01}};
bool isChar(char ch){
return (ch>='A'&&ch<='Z') ||(ch>='a'&&ch<='z');
}
float getAns(string s){
float ans = 0;
size_t i=0;
while(i<s.size()){
if(isChar(s[i])){
char element = s[i];
i++;
if(i<s.size() && !isChar(s[i])){
int count = 0;
while(i<s.size() && !isChar(s[i])){
count = count*10 + (s[i] - '0');
i++;
}
ans += cpm[element] * count;
} else {
ans += cpm[element];
}
}else {
i++;
}
}
return ans;
}
int main(){
int n;
cin>>n;
string s;
while(n--){
cin>>s;
printf("%.3f\n",getAns(s));
}
return 0;
}
1
https://gitee.com/lll2343/v-judge.git
git@gitee.com:lll2343/v-judge.git
lll2343
v-judge
vJudge
master

搜索帮助