相对分子质量
来源:互联网 发布:纽伦新港 知乎 编辑:程序博客网 时间:2024/04/28 20:23
题目描述
小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成的化学产物的相对分子质量令他很困惑,不知如何计算,请你编程帮他计算。
输入描述
输入的第一行是一个正整数n,表示有n组测试数据。
接下来n行每行输入一个字符串,表示某个分子式,分子式中只包含大写字母和数字。
注意:
输入数据只包含8种元素,而这8种元素的相对原子质量如下:
H(1),C(12),N(14),O(16),F(19),P(31),S(32),K(39)。
接下来n行每行输入一个字符串,表示某个分子式,分子式中只包含大写字母和数字。
注意:
输入数据只包含8种元素,而这8种元素的相对原子质量如下:
H(1),C(12),N(14),O(16),F(19),P(31),S(32),K(39)。
输出描述
对于每组输入,输出相对分子质量。
输入样例
4H2OKOHCH4SO2
输出样例
18561664
提示
AC代码如下:
#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;int f(char c){ switch(c) { case 'H': return 1; break; case 'C': return 12; break; case 'N': return 14; break; case 'O': return 16; break; case 'F': return 19; break; case 'P': return 31; break; case 'S': return 32; break; case 'K': return 39; break; default: break; }}int main(){ char a[1001]; int i,N,len; cin>>N; getchar(); while(N--) { int sum = 0; scanf("%s",&a); len = strlen(a); for(i = 0; i<len; ++i) { if(a[i+1]<='9'&&a[i+1]>'0') { int sum2=0; for(int k=i+1;k<len;k++) { if(a[k]<='9'&&a[k]>='0') sum2=sum2*10+(a[k]-'0'); else break; } sum = sum + f(a[i])*sum2; } else if(a[i]<='9'&&a[i]>='0') continue; else if(a[i]<'Z'&&a[i]>'A'&&(a[i+1]<'Z'&&a[i+1]>'A'||a[i+1]=='\0')) sum = sum + f(a[i]); } printf("%d\n",sum); } return 0;}
阅读全文
0 0
- 相对分子质量计算
- 相对分子质量
- 1052:相对分子质量
- 相对分子质量
- 相对分子质量
- HHUOJ_1351: 相对分子质量
- Molecular weight相对分子质量
- UVA 1586 Molar mass(蛋白质的相对分子质量)
- 字符串水题——相对分子质量
- 分子公司
- 分子计算机
- 分子设计
- 极性分子
- 分子计算机
- 软件质量概述 3 不同质量保障技术的相对效能
- 分子计算:逻辑层
- 【其他】【RQNOJ】分子团
- 寻找“捣乱分子”对[
- Mysql数据库备份的问题:mysqldump: Got error: 1049: Unknown database ‘blog;’ when selecting the database
- 高度自定义TextView 绝对满足你
- stm32 exti 5~9 中断源区分
- java 顺时针打印矩阵
- 面对稀疏噪声的有标签数据时如何改造通用词嵌入表示
- 相对分子质量
- VSM(Virtual Storage Manager) add new osd 代码分析
- 人脸相关文章
- [YTU]_2498 (C++类实现最大数的输出)
- intellij idea svn使用一 导入、更新、提交、解决冲突
- APP在线制作平台,终极技术哪家强?
- Pyunit源码笔记之十 pyunit运行方式之一:直接调用
- 图片上传预览,解决路径为fakepath
- Xamarin XAML语言教程通过数据绑定使用Progress属性