首页 > 代码库 > (UVA)1586 --Molar Mass(分子量)
(UVA)1586 --Molar Mass(分子量)
题目链接:http://vjudge.net/problem/UVA-1586
思路:统计一个分子式中CHON出现的总次数,乘上相对原子量后求和。要注意的是CH4这样的C后面的1默认不出现,以及C4H10这样的后面的数字是两位的情况。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 int main() 7 { 8 int t,len; 9 double c,h,o,n; 10 char s[80]; 11 scanf("%d",&t); 12 while(t--) 13 { 14 scanf("%s",s); 15 len = strlen(s); 16 int i=0,num=0; 17 c=0; h=0; o=0; n=0; 18 while(i<len) 19 { 20 if(s[i]>=‘A‘&&s[i]<=‘Z‘) 21 { 22 if (s[i+1]>=‘0‘&&s[i+1]<=‘9‘) 23 { 24 num=num*10+s[i+1]-‘0‘; 25 if (s[i+2]>=‘0‘&&s[i+2]<=‘9‘) 26 num=num*10+s[i+2]-‘0‘; 27 }else num=1; 28 if(s[i]==‘C‘) c+=num; 29 if(s[i]==‘H‘) h+=num; 30 if(s[i]==‘O‘) o+=num; 31 if(s[i]==‘N‘) n+=num; 32 num=0; 33 } 34 i++; 35 } 36 printf("%.3lf\n",c*12.01+h*1.008+o*16.00+n*14.01); 37 } 38 return 0; 39 }
(UVA)1586 --Molar Mass(分子量)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。