⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_65165.htm

📁 vc
💻 HTM
字号:
<p>
序号:65165 发表者:klink 发表日期:2003-12-16 08:34:16
<br>主题:头一次来啊,照例发个帖子难为大家一下,呵呵
<br>内容:分子式是用来表达分子组成结构的表达式,一般表达形式为A1c1A2c2A3c3... 其中Ai(i=1,2,.......)表示原子或原子团,ci(i=1,2,....)表示原子或原子团Ai重复的次数。当ci=1时,ci必须省略不写,且原子团的括号也不要。例如N的原子量为14,H的原子量为1,C的原子量为12,O的原子量为16,因此(NH4)2CO3的分子量为(14+1*4)*2+16*3=96。试编写程序求出给定的各个分子式所对应的分子量。<BR><BR>输入:文件的内容分为两部分:第一部分描述了各种原子的原子量:第二部分描述了待求分子量的各个分子的分子式。第一部分的第一行只有一个数k,随后的k行第行描述一种原子的原子量,格式为 c&nbsp;&nbsp;p ,其中c为原子的名称,p为该原子的原子量,二者之间用空白字符隔开,注意:原子量可能含小数部分。第二部分的第一行只有一个数m,表明随后的m行每行描述了一种分子的分子式(所给的分子式均为正确的表达式,且不含空白字符)。<BR><BR>输出:每行输出一个分子式及其对应的分子量<BR><BR>示例:<BR><BR>&nbsp;&nbsp; 输入<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cl&nbsp;&nbsp;&nbsp;&nbsp;35.5<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Na&nbsp;&nbsp; 23<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N&nbsp;&nbsp;&nbsp;&nbsp; 14<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;H&nbsp;&nbsp;&nbsp;&nbsp; 1<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C&nbsp;&nbsp;&nbsp;&nbsp; 12<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O&nbsp;&nbsp;&nbsp;&nbsp; 16<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NaCl<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CO2<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(NH4)2CO3<BR><BR>输出:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NaCl&nbsp;&nbsp; 58.5<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CO2&nbsp;&nbsp;&nbsp;&nbsp; 44<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(NH4)2CO3&nbsp;&nbsp; 96<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:sunice 回复日期:2003-12-16 12:12:43
<br>内容:程序员考试题??
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:zzjhsj 回复日期:2003-12-16 15:20:12
<br>内容:<BR>map&lt;string,int&gt; items;<BR>int item(const string&amp;s)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return items.find(s)-&gt;second;<BR>}<BR><BR>int inittable(ifstream&amp;)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//不读文件了:)<BR>&nbsp;&nbsp;&nbsp;&nbsp;items.insert(make_pair(&#34;H&#34;,1));<BR>&nbsp;&nbsp;&nbsp;&nbsp;items.insert(make_pair(&#34;O&#34;,16));<BR>&nbsp;&nbsp;&nbsp;&nbsp;items.insert(make_pair(&#34;C&#34;,12));<BR>&nbsp;&nbsp;&nbsp;&nbsp;items.insert(make_pair(&#34;Fe&#34;,26*2));<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>int getnb(const string&amp;p,int&amp;pos)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int tpos=pos;<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(pos&lt;p.size() &amp;&amp; isdigit(p[pos]))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos++;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;if(pos!=tpos)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return strtol(p.substr(tpos,pos-tpos).c_str(),NULL,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1;<BR>}<BR><BR>int simplef(const string&amp;p,int&amp;pos)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int r=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(pos&lt;p.size())<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(p[pos]=='(')<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r+=simplef(p,++pos);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(p[pos]==')')<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return r*getnb(p,++pos);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(isupper(p[pos]))//第一个字母<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int tpos=pos++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pos&lt;p.size())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(islower(p[pos]))//第二个小写字母<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r+=getnb(p,pos)*item(p.substr(tpos,2));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r+=getnb(p,pos)*item(p.substr(tpos,1));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return r+item(p.substr(tpos,1));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return r;<BR>}<BR><BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;ifstream f;<BR>&nbsp;&nbsp;&nbsp;&nbsp;inittable(f);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;int pos=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;simplef(&#34;FeFe2(Fe2)2CC2(C2)2(CH3)2(CH2)2&#34;,pos)&lt;&lt;&#34;\n&#34;;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -