水题 UVA 1586 - Ancient Cipher化学式分子量计算
原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106424#overview
题目要求,根据所给化学量与原子量计算化学式的相对分子质量。。。其实就是怎么对应起来的事。
代码如下:
1 #include <stdio.h> 2 //给出一种物质的分子式(不带括号),求分子量。 3 //本题中的分子式只包含4种原子:C,H,O,N,原子量分别为12.01,1.008,16.00,14.01. 4 int main() 5 { 6 int t,i; 7 scanf("%d", &t); 8 9 while (t--) 10 { 11 char s[100]; 12 scanf("%s",s); 13 double sum = 0,num; 14 15 for (i = 0; s[i]!='\0' ; i++) 16 { 17 if ('0'<=s[i+1] && s[i+1]<='9') 18 { 19 if ('0'<=s[i+2] && s[i+2]<='9') 20 num=10*(s[i+1]-'0')+s[i+2]-'0'; 21 else 22 num=s[i+1]-'0'; 23 } 24 else num = 1; 25 26 if(s[i]=='N') sum+=14.01*num; 27 else if(s[i]=='C') sum+=12.01*num; 28 else if(s[i]=='H') sum+=1.008*num; 29 else if(s[i]=='O') sum+=16.00*num; 30 } 31 printf("%.3lf\n",sum); 32 } 33 return 0; 34 }
我的思路嘞,基本是按照字符来确定化学式进而去求质量。。嗯