刘汝佳算法竞赛第二版习题3-2思路
最近在看刘汝佳编写的紫皮算法书,第三章后面有个习题,尝试写了一下,总感觉能找到更加便利的解题方法,但能力有限没想到。
上网搜索了一下,也没找到能让我眼前一亮的方法,那就暂且把我写的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思路相关推荐
- 刘汝佳算法竞赛入门经典 第二单元习题答案自编
欢迎交流讨论! @2-1 #include <fstream> using namespace std;ifstream fin("aplusb.in"); ofstr ...
- 刘汝佳算法竞赛入门经典第三章习题
/*给出一些容易理解的解题方法 但是没有oj评测 所以无法保证一定正确 矩阵的旋转给出了左旋和右旋 不确定题目3-5是哪一种*/ 习题3-1分数统计(stat) 输入一些学生的分数,哪个分数出现的 ...
- 刘汝佳算法竞赛入门习题3-3
题目:数数字 把n(n≤10000)个整数顺次写在一起:1234567891011112······数一数0~9各出现多少次 代码如下: #include<stdio.h> #includ ...
- 刘汝佳算法竞赛入门例题-循环部分
今天是学习acm的第一天,记录一些学习的心得. p34-韩信点兵 简要题干:输入a.b.c,表示军队人数模3,模5,模7的余数 输出 ...
- 刘汝佳算法竞赛入门 UVA-11809 Floating-Point Numbers 暴力写法。
题目大意:计算机常用阶码-尾数的方法保存浮点数.如 图3-9所示,如果阶码有6位,尾数有8位,可以表 达的最大浮点数为0.1111111112×21111112.注意小 数点后第一位必须为1,所以一共 ...
- 刘汝佳算法入门笔记(1)
刘汝佳算法入门笔记 习题4-2 习题4-2 有n行n列(2≤n≤9)的小黑点,还有m条线段连接其中的一些黑点.统计这些线段连成 了多少个正方形(每种边长分别统计). 行从上到下编号为1-n,列从左到右 ...
- 破损的键盘(刘汝佳-算法入门经典第六章)
感谢原文博主对此题的解释!笔者在原文基础上进行了部分注释以表达自己的理解,如有错误,恳请指正! 原文链接:https://blog.csdn.net/gyh_420/article/details/7 ...
- 刘汝佳《算法竞赛入门经典(第二版)》习题(三)
刘汝佳<算法竞赛入门经典(第二版)>第三章习题(一) 习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585) 给出一个由O和X组成的串(长度为1~80),统计得分.每个 ...
- 刘汝佳《算法竞赛入门经典(第二版)》习题(六)
刘汝佳<算法竞赛入门经典(第二版)>第四章习题(4-1~4-3) 习题4-1 象棋(Xiangai,ACM/ICPC Fuzhou 2011,UVa1589) 考虑一个象棋残局,其中红方有 ...
最新文章
- vmware无法打开ubuntu解决办法
- SAP RETAIL供应商寄售库存跨公司转移后的库存状况
- 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
- Python知识点笔记-条件选择、循环和函数
- [集训队作业2018]小Z的礼物(min-max容斥,插头dp)
- Redis进阶实践之十六 Redis大批量增加数据
- 公共情报工具automater的基本使用
- C语言连接PostgreSQL数据库
- 计算机应用基础三次没有通过怎么办,计算机应用基础第三次作业
- java与数据库连接odbc_详解java数据库连接之JDBC-ODBC桥连方式
- linux系统权限640,linux权限及权限管理
- 少年群侠传服务器维护时间,少年群侠传开服表
- 关于AP3211KTR-G1
- MySQL安全分析:缓解MySQL零日漏洞
- 扩展中国剩余定理模板
- 头条校招(今日头条2017秋招真题)
- CGI 学习笔记 HelloCGI
- 毕业设计 - 基于Web的仓库管理系统的设计与实现【源码 + 论文】
- surface pro5 matlab,surfacepro5怎么样微软surfacepro哪款好
- linux 内核笔记之watchdog
热门文章
- 软件测试接口测试用例设计
- AdapterView及子类
- RISC-V 中开发 Java 是一种什么体验? 让 Dragonwell JDK 来回答
- WPF真入门教程04--UI布局1
- 深度学习中的归一化方法简介(BN、LN、IN、GN)
- hbase的系统表、分裂、下载和上传
- 计算机word乘法公式,在word表格中进行加减乘除法计算
- 计算机数据库方向论文ei,数据库实验室1篇论文被《计算机研究与发展》EI期刊录用...
- 合肥工业大学机器人足球仿真robcup作业三(python实现)附代码有注释
- TextCNN文本分类(keras实现)