紫书上习题3-2,这道题我用的普通的 for 循环做的,逐个判断字符,若该字符为 C , H , O , N ,则判断该字符的后两位是否为数字,是数字就乘以该字符的原子量,最后求和;

v#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <iomanip>
#include <algorithm>
using namespace std;int main()
{char C,H,O,N;string S;int n,p;while(cin>>n){while(n--){cin>>S;int len=S.length();double sum=0;for(int i=0;i<len;i++){if(S[i]=='C'){if(S[i+1]>=49&&S[i+1]<=57){if(S[i+2]>=48&&S[i+2]<=57)p=10*(S[i+1]-'0')+(S[i+2]-'0');elsep=S[i+1]-'0';}elsep=1;sum=sum+12.010*p;}else if(S[i]=='H'){if(S[i+1]>=49&&S[i+1]<=57){if(S[i+2]>=48&&S[i+2]<=57)p=10*(S[i+1]-'0')+(S[i+2]-'0');elsep=S[i+1]-'0';}elsep=1;sum=sum+1.008*p;}else if(S[i]=='O'){if(S[i+1]>=49&&S[i+1]<=57){if(S[i+2]>=48&&S[i+2]<=57)p=10*(S[i+1]-'0')+(S[i+2]-'0');elsep=S[i+1]-48;}elsep=1;sum=sum+16.000*p;}else if(S[i]=='N'){if(S[i+1]>=49&&S[i+1]<=57){if(S[i+2]>=48&&S[i+2]<=57)p=10*(S[i+1]-'0')+(S[i+2]-'0');elsep=S[i+1]-'0';}elsep=1;sum=sum+14.01*p;}elsecontinue;}cout<<fixed<<setprecision(3)<<sum<<endl;}}return 0;
}

1586 - Molar mass相关推荐

  1. UVa 1586 Molar mass 分子量 题解

    英文 Description An organic compound is any member of a large class of chemical compounds whose molecu ...

  2. (UVA)1586 --Molar Mass(分子量)

    题目链接:http://vjudge.net/problem/UVA-1586 思路:统计一个分子式中CHON出现的总次数,乘上相对原子量后求和.要注意的是CH4这样的C后面的1默认不出现,以及C4H ...

  3. UVa 1586 -- Molar mass

    一.题目 二.分析 题意要求计算原子总重量. 定义value数组来存放四个原子的数量. value数组大小开到100,应为存放的是大写字母,C,H,O,N,他们的ASCII码大于65. 定义w字符,表 ...

  4. uva 1586 - Molar mass

    本题为小紫书的57页第三题 主要在于判断字母还是数字,若为数字要连续读入整数,如果下一个还是数字 就要i++,如果不是就跳出循环.如果一个是字母下一个也为字母就需要当做把这个字母直接读入一个,要注意的 ...

  5. UVA1586 ​​​​​​​ Molar mass

    Molar mass UVA - 1586 题目传送门 题目大意:给你一个只包含C,H,O,N分子式,其中C,H,O,N的原子量分别为:12.01,1.008,16.00,14.01,求其分子量 AC ...

  6. UVa1586 - Molar mass

    //UVa1586 - Molar mass //给出一种由C, H, O, N 四种原子构成的分子式,求分子量 //#define A1 //无法处理换行问题(scanf) //#define A2 ...

  7. Molar mass(计算分子量)字符转化

    题目 An organic compound is any member of a large class of chemical compounds whose molecules contain ...

  8. 分子量(Molar Mass)数数字(Digit)||UVa 1586,1225

    两个题目均取自UVa,分别为UVa 1586和UVa 1225. 分子量 给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4中原子,分别为C, H, O, N,分子量分别为12.01, ...

  9. 分子量(Molar Mass)

    Description 给出一种物质的得分子式(不带括号), 求分子量.本题中的分子式只包含4种原子,分别为C,H,O,N,原子的量分别为12.01,1.008,16.00,14.01.例如,C6H5 ...

  10. 26行代码AC——习题3-2 分子量 (UVa1586,Molar Mass)——解题报告

    大意: 给出分子式,式中只包含以下四种元素.求分子量. C:12.01 H: 1.008 O: 16.00 N: 14.01 Sample Input 4 C C6H5OH NH2CH2COOH C1 ...

最新文章

  1. 向日葵Ubuntu连接马上断开问题
  2. php的异常处理,PHP异常处理Exception类
  3. 【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)
  4. bootstrap-table真实交互数据_博思远略:基于AI交互场景数据构建用户画像的几点思考...
  5. filter函数的用法_JavaScript中forEach和filter的用法和原理
  6. Erlang与Java内存架构
  7. 界面设计方法 (2) — 4.界面设计的原则与标准
  8. android网络请求分析工具,android网络数据请求
  9. 看见的力量 – (II) 影响地图
  10. 安装netbeans步骤
  11. 基于深度摄像头的障碍物检测(realsense+opencv)
  12. 数据挖掘#特征工程(二)特征重要性及可解释性总结
  13. ODB 入门介绍(二)
  14. 带变压器和不带变压器的RJ45
  15. 开始甲骨文培训了,第一天说了一下上课学习规矩及计算机基础
  16. 【Java】从Java代码到网络编程,三次握手又该如何理解
  17. mt4怎么修改服务器代码,如何修改指标参数?
  18. 微信小程序 - 下载文件到本地、打开文档
  19. OpenCV Face Recognition山寨版
  20. 2021年双非通信方向的详细保研经历(北邮、上交、东南)

热门文章

  1. BGP路由技术详解(一)
  2. 多个PDF怎么一起打印?教你两种打印方法
  3. 计算机网络 谢希仁版 部分知识点(未写完,更新中)
  4. 谷歌colab平台简单使用及读取自己的数据集
  5. MySQL数据库必会的增删查改操作(CRUD)
  6. 地图编辑器到底是做什么的?今天之后你会对此有个新的了解
  7. ORA-01017 ORA-02063: preceding 2 lines from SQLEMR
  8. 移动硬盘插服务器上坏了,移动硬盘接口坏了怎么办解决教程
  9. mysql 分区表如何恢复_如何恢复mysql 单个innodb 分区表
  10. Linux eBPF内核源码sample/bpf全网最细解析(一)