uva 1586 Molar mass
2016-04-09 21:23
204 查看
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int change(char ch) { return ch-'1'; } int main() { int t; cin>>t; while(t--) { string a; cin>>a; double m=0; double sum=0; double c[100],d[100]; memset(c,0,sizeof(c)); for(int i=0;i<(int)a.length();i++) d[i]=1; if((int)a.length()==1) { if(a[0]=='C') {sum=12.010;m=0;} if(a[0]=='H') {sum=1.008;m=0;} if(a[0]=='O') {sum=16.000;m=0;} if(a[0]=='N') {sum=14.010;m=0;} } else { for(int i=0;i<(int)a.length();i++) { if(a[i]=='C') {c[i]=12.010;m=0;} else if(a[i]=='H') {c[i]=1.008;m=0;} else if(a[i]=='O') {c[i]=16.000;m=0;} else if(a[i]=='N') {c[i]=14.010;m=0;} else { if(m==0) {d[i-1]+=change(a[i]);m=1;} else{d[i-2]=d[i-2]*10+(a[i]-'0');} } } } for(int i=0;i<(int)a.length();i++) { if(c[i]) sum+=c[i]*d[i]; } printf("%.3f\n",sum); } return 0; }
相关文章推荐
- 数据结构学习笔记(六)堆-优先队列
- 分析exec*函数对应的系统调用处理过程
- 拟牛顿法及其相关解法
- 模板1
- 数据结构课程上机实验题(三)
- uva 1225 Digit Counting
- uva 455 Periodic Strings
- UVa 1588 Kickdown
- 模仿QQ聊天
- Socket详解
- MFC-抓取网页源码
- python学习入门第一天总结
- 软件工程结对作业02
- 自定义Dialog
- 工程设计人员VB开发注意几个问题
- Android代码绘制虚线、圆角、渐变效果图
- uva 227 Puzzle
- AndroidStudio打包及引用aar - Android
- 双向链表
- Mahout学习路线图-张丹老师