博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 1586 ----Molar mass
阅读量:5304 次
发布时间:2019-06-14

本文共 3174 字,大约阅读时间需要 10 分钟。

这个题,走了不少弯路,做了之上2个小时,究其原因,化学功底不深厚啊。。。。。CH3这样的我还以为是(CH)3,结果。。。。。。

 后来略参考了网上的代码。。

An organic compound is any member of a large class of chemical compounds whose molecules contain carbon. The molar mass of an organic compound is the mass of one mole of the organic compound. The molar mass of an organic compound can be computed from the standard atomic weights of the elements.

\epsfbox{p3900.eps}

When an organic compound is given as a molecular formula, Dr. CHON wants to find its molar mass. A molecular formula, such as C3 H4 O3 , identifies each constituent element by its chemical symbol and indicates the number of atoms of each element found in each discrete molecule of that compound. If a molecule contains more than one atom of a particular element, this quantity is indicated using a subscript after the chemical symbol.

In this problem, we assume that the molecular formula is represented by only four elements, `C' (Carbon), `H' (Hydrogen), `O' (Oxygen), and `N' (Nitrogen) without parentheses.

The following table shows that the standard atomic weights for `C', `H', `O', and `N'.

Atomic Name Carbon Hydrogen Oxygen Nitrogen
Standard Atomic Weight 12.01 g/mol 1.008 g/mol 16.00 g/mol 14.01 g/mol

For example, the molar mass of a molecular formula C6 H5 OH is 94.108 g/mol which is computed by 6 × (12.01 g/mol) + 6 × (1.008 g/mol) + 1× (16.00 g/mol).

Given a molecular formula, write a program to compute the molar mass of the formula.

 

Your program is to read from standard input. The input consists of T test cases. The number of test cases T is given in the first line of the input. Each test case is given in a single line, which contains a molecular formula as a string. The chemical symbol is given by a capital letter and the length of the string is greater than 0 and less than 80. The quantity number n which is represented after the chemical symbol would be omitted when the number is 1 (2$ \le$n$ \le$99) .

 

Your program is to write to standard output. Print exactly one line for each test case. The line should contain the molar mass of the given molecular formula.

 

4 C C6H5OH NH2CH2COOH C12H22O11

 

12.010 94.108 75.070 342.296

#include 
#include
double M(char x){ if(x=='C') return 12.01; if(x=='H') return 1.008; if(x=='O') return 16.00; if(x=='N') return 14.01;}int main(){ char str[100]; int N,i,j; double sum; scanf("%d",&N); while(N--) { scanf("%s",str); sum = 0; for(i=0; i
='A') { if(str[i+1]<='9' && str[i+1]>='1') { if(str[i+2]<='9' && str[i+2]>='1') { sum = sum + M(str[i])*((str[i+1]-'0')*10 + str[i+2]-'0'); i = i+2; } else { sum = sum + M(str[i])*(str[i+1]-'0'); i++; } } else { sum += M(str[i]); } } } printf("%.3lf\n",sum); } return 0;}

 

转载于:https://www.cnblogs.com/kunsoft/p/5312813.html

你可能感兴趣的文章
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
微信小程序之随笔
查看>>
每秒处理10万高并发订单的乐视集团支付系统架构分享
查看>>
Lua_02
查看>>
ios蓝牙详解
查看>>
安装MySQL5.7.18遇到的坑
查看>>
React Native在Android平台运行gif的解决方法转载
查看>>
Mybatis RowBounds 是逻辑分页
查看>>
hdu 3341(ac自动机+状态压缩)
查看>>
51单片机之蓝牙遥控小车_效果展示+单片机知识+完整蓝牙电车代码
查看>>
使用WNMP时报的错
查看>>
扩展Django内置的auth模块代码示例
查看>>
Sql Server中REPLACE函数的使用
查看>>
SqlServerl的行转列
查看>>
《信息安全系统设计基础》第三周问题总结
查看>>
nextInt()和nextLine()一起使用时的注意点
查看>>
java如何获取一个对象的大小【转】
查看>>
MobilePhone正则表达式
查看>>
2017年3月17日上午日志
查看>>
JavaScript跨域总结与解决办法
查看>>