uva 1586 分子量
2017-07-09 17:56
218 查看
题意:给你一个分子式,求出这个分子的摩尔质量是多少,已知分子式只含有 C、H、O、N 四种元素。
这是一道非常简单的题,只需要用sum累加所有原子的原子质量就行了,遇到数字的时候就累加这个数字乘上前面的原子的原子质量,很水,却在细节上浪费了一小会,实在不应该。
这是一道非常简单的题,只需要用sum累加所有原子的原子质量就行了,遇到数字的时候就累加这个数字乘上前面的原子的原子质量,很水,却在细节上浪费了一小会,实在不应该。
#include<bits/stdc++.h> using namespace std; map<char,double>mp; int main() { int t,i,len; double sum; string str; char ch; mp['C']=12.01,mp['H']=1.008,mp['O']=16.00,mp['N']=14.01;//用map来保存每个原子的原子质量比较方便 cin>>t; while(t--) { cin>>str; len=str.length(); i=0; sum=0; int cnt=0; while(i<len) { if(isalpha(str[i])) sum+=mp[str[i]],i++; if(isdigit(str[i])) ch=str[i-1]; while(isdigit(str[i])) { cnt=cnt*10+str[i]-'0'; i++; } if(isdigit(str[i-1])) { sum+=(cnt-1)*mp[ch];//cnt减 1 是因为前面第一步已经累加过一次这个原子的原子质量了 cnt=0; } } printf("%.3f\n",sum); } return 0; }
相关文章推荐
- 算法竞赛入门竞赛 习题3-2 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
- UVa1586 分子量
- UVA1586 分子量 元素下标任意位数版本
- 习题 3-2 分子量 (ACM/ICPC Seoul 2007, UVa1586)
- UVA 1586 分子量(简单模拟计算)
- Molar Mass, ACM/ICPC Seoul 2007,Uva1586 给出一种物质的分子式,求分子量
- 算法竞赛入门经典-习题3-2 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
- uva 1586 分子量————C12H22O11读取数字12。。。
- 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
- UVa1586 分子量 算法竞赛入门经典第二版CH-3习题3-2
- UVA 1586 分子量
- UVa 1586 Molar mass (计算分子量,不含扩号)
- 分子量 UVa1586
- 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
- UVA-1586分子量
- b2bf 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
- 分子量UVa1586
- 算法竞赛入门经典3.2 分子量UVa1586
- UVa1586 Molar mass 分子量 (java版本)
- 水题 UVA 1586 - Ancient Cipher化学式分子量计算