• 题目链接
  • 思路

(1) CHON的原子量存储:

对应的ASCALL码:

C --- 67    H --- 72  O ---- 79  N --- 78

所以利用数组存储 : a[0] = C a[5] = H .....

PS: 此处亦可使用函数的方式, 传入的参数是字符, 返回该字符对应的原子量

(2) 原子量的计算

从左至右依次读取字符, c1存储上一个字符, c2存储当前字符, c3存储上一个字母

分四种情况讨论:

  • 上一个字符是数字,当前字符是数字
  • 上一个字符是字母,当前字符是数字
  • 上一个字符是数字,当前字符是字母
  • 上一个字符是字母,当前字符是字母

(3) 代码

#include <iostream>
#include <ctype.h>
using namespace std;
int main(int argc, char *argv[])
{int n,t; //n是样本个数 double a[15]={0},value; //value为最后的输出值 a[0] = 12.01; //Ca[5] = 1.008; //Ha[12] = 16.00; //Oa[11] = 14.01; //N cin>>n;getchar();int c1,c2,c3;  //c1是上一个字符, c2是当前字符, c3是上一个字母(CHON) while(n--){ c3 = c1 = getchar();value = 0;t = 0;while((c2 = getchar()) != '\n'){if(isdigit(char(c1)) && isdigit(char(c2))) //上一个字符是数字,当前字符是数字 {t = t*10 + (char(c2) - '0'); }else if(!isdigit(char(c1)) && isdigit(char(c2))) //上一个字符是字母,当前字符是数字 {t = char(c2) - '0';}else if(isdigit(char(c1)) && !isdigit(char(c2))) //上一个字符是数字,当前字符是字母 {value += t*a[c3-67];c3 = c2;}else if(!isdigit(char(c1)) && !isdigit(char(c2))) //上一个字符是字母,当前字符是字母 {value += a[c3-67];c3 = c2;}c1 = c2;}if(isdigit(c1)){value += t*a[c3-67];}else{value += a[c3-67];}printf("%.3f\n",value);}return 0;
}

UVA1586 Molar Mass(分子量)相关推荐

  1. UVa1586 - Molar mass

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

  2. UVA1586 ​​​​​​​ Molar mass

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

  3. UVa 1586 Molar mass 分子量 题解

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

  4. 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 ...

  5. UVa1586 Molar Mass

    <算法竞赛入门经典(第2版)> 作者:刘汝佳 第三章习题3-2 给出一种物质的分子式,求分子量 https://uva.onlinejudge.org//index.php?option= ...

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

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

  7. 分子量 (Molar Mass, ACM/ICPC Seoul 2007, UVa1586)

    给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol),输入t个分子 ...

  8. 算法竞赛入门竞赛 习题3-2 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)

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

  9. 分子量(Molar Mass)

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

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

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

最新文章

  1. layui一个表格中怎么接两个接口的值_layer学习笔记之table表格引入数据实现分页...
  2. 机器学习初学者都应该知道的5类回归损失函数
  3. 【转】增强 scite 编辑器的代码提示功能
  4. oracle根据当前月份往前,oracle获取系统日期--当前时间+前一天+当前月+前一个月...
  5. asp.net 将此项目作为引用添加将导致循环依赖项
  6. PyQt4打包exe文件
  7. Chapter 1 : MySQL体系结构和搜索引擎
  8. java贪吃蛇_Java贪吃蛇游戏完善版
  9. asp毕业设计—— 基于asp+access的图书管理系统设计与实现(毕业论文+程序源码)——图书管理系统
  10. java 导出word换行_[原创]java导出word的5种方式
  11. 万字拆解江小白:新品牌做白酒,敢问路在何方?
  12. Power BI+Power Apps联动初尝试
  13. 大学应用计算机应用基础课程介绍,《大学计算机应用基础》课程教学大纲
  14. 带你Java入门(Java系列1)
  15. 自媒体推广该怎么做?学懂这10招,走路横着走
  16. Softmax及其损失函数求导推导过程
  17. 解决报错 “App” is damaged and can’t be opened. You should move it to the Trash (Mac)
  18. 【图解数据结构】树和二叉树全面总结(上)
  19. 快手宣布从7月1日起取消大小周,员工按需加班,公司按照相关规定向员工支付加班工资
  20. 激励奖金到账扣税计算方法

热门文章

  1. 产品策划到底是做什么的?
  2. Linux常见英文翻译
  3. 强制修改服务器时间,修改服务器时间脚本
  4. python数据可视化代码示例
  5. ODL(OpenDayLight)Yang UI界面下发流表(ODL+mininet)
  6. H5纯静态页面分享到微信朋友圈带图片显示
  7. scanf输入回车问题
  8. finecms aip.php漏洞,FineCMS最新版5.0.8两处getshell(附python批量poc脚本)
  9. 游戏HTML翻翻乐,大班益智游戏翻翻乐优秀教案
  10. 5000元档投影仪挑选指南,当贝F3与极米H3两款旗舰级投影到底怎么选?