最近在看刘汝佳编写的紫皮算法书,第三章后面有个习题,尝试写了一下,总感觉能找到更加便利的解题方法,但能力有限没想到。

上网搜索了一下,也没找到能让我眼前一亮的方法,那就暂且把我写的shi山放出来让大伙看看,希望大伙提提建议优化一下,小弟感激不尽。

题目:分子量(Molar Mass,ACM/ICPC SEOUL 2007,UVa1586)

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

解题思路:

  读入字符串后先判断是否为字母,若是,则更新原子量,再判断字母后是否是数字,若是就乘该数字转化后的整型,若否则乘一。定义浮点量sum存储结果。

代码如下:

#include<stdio.h>
#include<string.h>int main(){char s[9];double sum=0;gets(s);for(int i=0;i<(strlen(s));i++){double temp=0;if(s[i]>='A'){switch (s[i]){case'C':temp=12.01;break;case'H':temp=1.008;break;case'O':temp=16.00;break;case'N':temp=14.01;break;}if(i<strlen(s)-1){if(s[i+1]<'A'){sum+=temp*(double)(s[i+1]-'0');}else{sum+=temp;}}else{sum+=temp;}}else{continue;}}printf("%lf",sum);
}

刘汝佳算法竞赛第二版习题3-2思路相关推荐

  1. 刘汝佳算法竞赛入门经典 第二单元习题答案自编

    欢迎交流讨论! @2-1 #include <fstream> using namespace std;ifstream fin("aplusb.in"); ofstr ...

  2. 刘汝佳算法竞赛入门经典第三章习题

    /*给出一些容易理解的解题方法  但是没有oj评测 所以无法保证一定正确  矩阵的旋转给出了左旋和右旋 不确定题目3-5是哪一种*/ 习题3-1分数统计(stat) 输入一些学生的分数,哪个分数出现的 ...

  3. 刘汝佳算法竞赛入门习题3-3

    题目:数数字 把n(n≤10000)个整数顺次写在一起:1234567891011112······数一数0~9各出现多少次 代码如下: #include<stdio.h> #includ ...

  4. 刘汝佳算法竞赛入门例题-循环部分

    今天是学习acm的第一天,记录一些学习的心得. p34-韩信点兵         简要题干:输入a.b.c,表示军队人数模3,模5,模7的余数                           输出 ...

  5. 刘汝佳算法竞赛入门 UVA-11809 Floating-Point Numbers 暴力写法。

    题目大意:计算机常用阶码-尾数的方法保存浮点数.如 图3-9所示,如果阶码有6位,尾数有8位,可以表 达的最大浮点数为0.1111111112×21111112.注意小 数点后第一位必须为1,所以一共 ...

  6. 刘汝佳算法入门笔记(1)

    刘汝佳算法入门笔记 习题4-2 习题4-2 有n行n列(2≤n≤9)的小黑点,还有m条线段连接其中的一些黑点.统计这些线段连成 了多少个正方形(每种边长分别统计). 行从上到下编号为1-n,列从左到右 ...

  7. 破损的键盘(刘汝佳-算法入门经典第六章)

    感谢原文博主对此题的解释!笔者在原文基础上进行了部分注释以表达自己的理解,如有错误,恳请指正! 原文链接:https://blog.csdn.net/gyh_420/article/details/7 ...

  8. 刘汝佳《算法竞赛入门经典(第二版)》习题(三)

    刘汝佳<算法竞赛入门经典(第二版)>第三章习题(一) 习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585) 给出一个由O和X组成的串(长度为1~80),统计得分.每个 ...

  9. 刘汝佳《算法竞赛入门经典(第二版)》习题(六)

    刘汝佳<算法竞赛入门经典(第二版)>第四章习题(4-1~4-3) 习题4-1 象棋(Xiangai,ACM/ICPC Fuzhou 2011,UVa1589) 考虑一个象棋残局,其中红方有 ...

最新文章

  1. vmware无法打开ubuntu解决办法
  2. SAP RETAIL供应商寄售库存跨公司转移后的库存状况
  3. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
  4. Python知识点笔记-条件选择、循环和函数
  5. [集训队作业2018]小Z的礼物(min-max容斥,插头dp)
  6. Redis进阶实践之十六 Redis大批量增加数据
  7. 公共情报工具automater的基本使用
  8. C语言连接PostgreSQL数据库
  9. 计算机应用基础三次没有通过怎么办,计算机应用基础第三次作业
  10. java与数据库连接odbc_详解java数据库连接之JDBC-ODBC桥连方式
  11. linux系统权限640,linux权限及权限管理
  12. 少年群侠传服务器维护时间,少年群侠传开服表
  13. 关于AP3211KTR-G1
  14. MySQL安全分析:缓解MySQL零日漏洞
  15. 扩展中国剩余定理模板
  16. 头条校招(今日头条2017秋招真题)
  17. CGI 学习笔记 HelloCGI
  18. 毕业设计 - 基于Web的仓库管理系统的设计与实现【源码 + 论文】
  19. surface pro5 matlab,surfacepro5怎么样微软surfacepro哪款好
  20. linux 内核笔记之watchdog

热门文章

  1. 软件测试接口测试用例设计
  2. AdapterView及子类
  3. RISC-V 中开发 Java 是一种什么体验? 让 Dragonwell JDK 来回答
  4. WPF真入门教程04--UI布局1
  5. 深度学习中的归一化方法简介(BN、LN、IN、GN)
  6. hbase的系统表、分裂、下载和上传
  7. 计算机word乘法公式,在word表格中进行加减乘除法计算
  8. 计算机数据库方向论文ei,数据库实验室1篇论文被《计算机研究与发展》EI期刊录用...
  9. 合肥工业大学机器人足球仿真robcup作业三(python实现)附代码有注释
  10. TextCNN文本分类(keras实现)