UVA - 1586 Molar Mass
2016-07-13 16:31
405 查看
UVA - 1586 Molar Mass
题目大意:给出只含 C,H,O,N 的分子,求分子量。解题思路:找到原子,提取原子后的数字即原子个数,乘原子量再相加即可。字符减去 ‘0’ 化为对应数字,连续数字乘以 10 进位后再加。
#include<cstdio> #include<cstring> #include<cctype> double molar[4]={12.01,1.008,16.00,14.01}; int aaa[20]; int main(){ aaa[2]=0;aaa[7]=1;aaa[14]=2;aaa[13]=3; int cc; scanf("%d",&cc); char temp[10000]; while(cc--) { memset(temp,0,sizeof(temp)); scanf("%s",temp); char a; int b=0; double sum=0; for(int i=0;i<strlen(temp);i++){ if(isalpha(temp[i])) { a=temp[i]; if(isalpha(temp[i+1])||temp[i+1]=='\0') b=1; } else if(isdigit(temp[i])) { while(isdigit(temp[i])) { b+=temp[i]-'0'; b*=10; i++; } b/=10; i--; } if(b&&b==1) {sum+=molar[aaa[a-'A']]; b=0; } else { sum+=molar[aaa[a-'A']]*b; b=0; } } printf("%.3lf\n",sum); } return 0; }
相关文章推荐
- 抠像技术介绍
- [随机化] HDU 5478 Can you find it
- 在windows上下载安装Android sdk
- 有效解决 iOS The document “(null)” requires Xcode 8.0 or later.
- UVA - 10361 Automatic Poetry
- Django通用视图讲解
- Quartz和Spring Task定时任务的简单应用和比较
- UVA-537 Artificial Intelligence?
- ubuntu下git常用命令
- JEDEC DDR2和DDR3 SPECIFICATION区别(持续更新)
- Yii实现的多级联动下拉菜单
- 安卓学习笔记---AndroidStudio快捷键
- 触屏手指滑动计算演示
- toodifficult 题解
- IPC之消息队列
- eclipse 删除所有注释及空白行
- 根据经纬度和半径计算经纬度范围
- 搜索的一些谓词
- C语言常用基础数据类型和变量
- 触屏手指滑动计算演示