UVA1586 Molar Mass(分子量)
- 题目链接
- 思路
(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(分子量)相关推荐
- UVa1586 - Molar mass
//UVa1586 - Molar mass //给出一种由C, H, O, N 四种原子构成的分子式,求分子量 //#define A1 //无法处理换行问题(scanf) //#define A2 ...
- UVA1586 Molar mass
Molar mass UVA - 1586 题目传送门 题目大意:给你一个只包含C,H,O,N分子式,其中C,H,O,N的原子量分别为:12.01,1.008,16.00,14.01,求其分子量 AC ...
- UVa 1586 Molar mass 分子量 题解
英文 Description An organic compound is any member of a large class of chemical compounds whose molecu ...
- 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 ...
- UVa1586 Molar Mass
<算法竞赛入门经典(第2版)> 作者:刘汝佳 第三章习题3-2 给出一种物质的分子式,求分子量 https://uva.onlinejudge.org//index.php?option= ...
- Molar mass(计算分子量)字符转化
题目 An organic compound is any member of a large class of chemical compounds whose molecules contain ...
- 分子量 (Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol),输入t个分子 ...
- 算法竞赛入门竞赛 习题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 ...
- 分子量(Molar Mass)
Description 给出一种物质的得分子式(不带括号), 求分子量.本题中的分子式只包含4种原子,分别为C,H,O,N,原子的量分别为12.01,1.008,16.00,14.01.例如,C6H5 ...
- (UVA)1586 --Molar Mass(分子量)
题目链接:http://vjudge.net/problem/UVA-1586 思路:统计一个分子式中CHON出现的总次数,乘上相对原子量后求和.要注意的是CH4这样的C后面的1默认不出现,以及C4H ...
最新文章
- layui一个表格中怎么接两个接口的值_layer学习笔记之table表格引入数据实现分页...
- 机器学习初学者都应该知道的5类回归损失函数
- 【转】增强 scite 编辑器的代码提示功能
- oracle根据当前月份往前,oracle获取系统日期--当前时间+前一天+当前月+前一个月...
- asp.net 将此项目作为引用添加将导致循环依赖项
- PyQt4打包exe文件
- Chapter 1 : MySQL体系结构和搜索引擎
- java贪吃蛇_Java贪吃蛇游戏完善版
- asp毕业设计—— 基于asp+access的图书管理系统设计与实现(毕业论文+程序源码)——图书管理系统
- java 导出word换行_[原创]java导出word的5种方式
- 万字拆解江小白:新品牌做白酒,敢问路在何方?
- Power BI+Power Apps联动初尝试
- 大学应用计算机应用基础课程介绍,《大学计算机应用基础》课程教学大纲
- 带你Java入门(Java系列1)
- 自媒体推广该怎么做?学懂这10招,走路横着走
- Softmax及其损失函数求导推导过程
- 解决报错 “App” is damaged and can’t be opened. You should move it to the Trash (Mac)
- 【图解数据结构】树和二叉树全面总结(上)
- 快手宣布从7月1日起取消大小周,员工按需加班,公司按照相关规定向员工支付加班工资
- 激励奖金到账扣税计算方法
热门文章
- 产品策划到底是做什么的?
- Linux常见英文翻译
- 强制修改服务器时间,修改服务器时间脚本
- python数据可视化代码示例
- ODL(OpenDayLight)Yang UI界面下发流表(ODL+mininet)
- H5纯静态页面分享到微信朋友圈带图片显示
- scanf输入回车问题
- finecms aip.php漏洞,FineCMS最新版5.0.8两处getshell(附python批量poc脚本)
- 游戏HTML翻翻乐,大班益智游戏翻翻乐优秀教案
- 5000元档投影仪挑选指南,当贝F3与极米H3两款旗舰级投影到底怎么选?