UVA 1586 Molar mass
来源:互联网 发布:巨人网络借壳辽宁成大 编辑:程序博客网 时间:2024/06/11 21:45
刚发现这四道题连在了一起,1583-1586,23333333
这道题是个水题,考查了对字符串的处理能力。一入手这道题第一想法是遇到化学元素就读下一个字符看看是不是数字然后展开的一系列特判。。。这个思路的耦合性太高,太多特判导致这个程序的健壮性太弱。所以我对字符进行逐个处理,遇到元素怎样,遇到数字怎样。。。
下面附代码:
#include <iostream>#include <algorithm>#include <map>#include <cstdio>using namespace std;int main(){ map<char, double> Base; Base['H'] = 1.008; Base['O'] = 16.0; Base['N'] = 14.01; Base['C'] = 12.01; int t; scanf("%d", &t); while(t--) { string line; cin >> line; int len = line.size(); double sum = 0; char key = '\0'; int num = 0; for(int i = 0; i < len; i++) { if(Base.count(line[i])) { if(num > 0) { sum += (Base[key] * num); num = 0; } else { sum += Base[key]; } if(i == len -1) { sum += Base[line[i]]; } else { key = line[i]; } } else { if(num > 0) { num *= 10; num += (line[i] - '0'); } else { num += (line[i] - '0'); } if(i == len -1) { sum += (Base[key] * num); } } } printf("%.3lf\n", sum); } return 0;}
阅读全文
1 0
- uva 1586 - Molar mass
- UVa 1586 - Molar mass
- UVa 1586 - Molar mass
- UVA 1586 ----Molar mass
- UVA 1586 - Molar mass
- UVa 1586 Molar mass
- UVa 1586 - Molar Mass
- UVA - 1586 Molar mass
- uva 1586 - Molar mass
- UVA 1586 Molar mass
- UVa 1586 - Molar mass
- UVa-1586Molar mass
- 【Uva 1586】 Molar mass
- UVA - 1586 Molar mass
- uva 1586 - Molar mass
- Uva - 1586 - Molar mass
- Uva 1586 Molar mass
- UVa 1586 Molar Mass
- 单链表 实现Java栈的理解
- 简单SqlHelper
- 自定义Animation
- adb 常用命令
- 菜鸟的第三篇日志
- UVA 1586 Molar mass
- Spring-AOP和事务实践(注解方式
- scrapy安装及PyCharm的scrapy配置
- flowable EngineConfiguration的作用和继承关系(1)
- 在线视频解析下载教程合集(值得收藏)
- 【dp】树形dp真好玩,hdu6035多校第一场的 colorful tree
- 单链表的增删查改等操作实现
- 浅谈逻辑回归
- G药--链表--增、删