题目要求

给出一种至多只含 C、H、O、N 四种元素的有机物的分子式(不带括号),求分子量,要求保留三位小数。

已知:C、H、O、N 的原子量分别为12.01, 1.008, 16.00, 14.01。

例如:C6H5OH的分子量为94.108,CH3COOH的分子量为60.052。

Java编程实现

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Main {public static void main(String[] args) {Map<Character, Double> map = new HashMap<>(4);map.put('C', 12.01);map.put('H', 1.008);map.put('O', 16.00);map.put('N', 14.01);Scanner scanner = new Scanner(System.in);String formula = scanner.nextLine();scanner.close();int num = 0;double sum = 0;char[] chars = formula.toCharArray();char temp = chars[0];for (int i = 1; i < chars.length; i++) {char c = chars[i];if (c >= '0' && c <= '9') {num *= 10;num += c-'0';} else {if (num == 0) {sum += map.get(temp);} else {sum += map.get(temp)*num;}num = 0;temp = c;}}if (!formula.endsWith("\\d+")) {sum += map.get(temp);}System.out.printf("%.3f", sum);}
}

【Java】基于分子式求分子量相关推荐

  1. JAVA基于坐标点求海拔

    JAVA基于GDAL求坐标点的海拔值 由于大部分地图API不提供海拔这一参数,所以海拔要单独计算.我选择了GDAL方式 开门见山--准备工作! 搭建好基于Java的GDAL运行环境和相关的配置 参数 ...

  2. 链路状态算法实现Java,JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩P...

    JAVA基于蚁群算法路由选择可视化动态模拟(开题报告+任务书+毕业论文+外文翻译+源代码+可执行程序+答辩PPT) 摘 要 路由选择是一种基于网络层的协议,而所有流行的网络层路由选择协议都是基于以下两 ...

  3. Java基于对象基础 基于对象和面向对象的区别(转)

    Java基于对象基础 基于对象和面向对象的区别 JavaScript设计者想把javascript语言设计成基于对象(object-based)的语言,他想把这个与面向对象(object-orient ...

  4. 连连看+php,java基于swing实现的连连看代码

    本文实例讲述了java基于swing实现连连看代码.分享给大家供大家参考. 主要功能代码如下:package llkan; import javax.swing.*; import java.awt. ...

  5. Java基于socket服务实现UDP协议的方法

    转载自 Java基于socket服务实现UDP协议的方法 这篇文章主要介绍了Java基于socket服务实现UDP协议的方法,通过两个简单实例分析了java通过socket实现UDP发送与接收的技巧, ...

  6. Java基于JavaMail实现向QQ邮箱发送邮件遇到的问题

    最近使用Java基于JavaMail实现向QQ邮箱发送邮件老是发送失败,在网上搜了下,终于找到原因,记录下. 参考:http://www.jb51.net/article/78405.htm 网上还有 ...

  7. Java基于opencv实现图像数字识别(一),java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  8. Java基于注解和反射导入导出Excel

    代码地址如下: http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包 ...

  9. 计算机毕业设计Java基于的药品销售系统(源码+系统+mysql数据库+lW文档)

    计算机毕业设计Java基于的药品销售系统(源码+系统+mysql数据库+lW文档) 计算机毕业设计Java基于的药品销售系统(源码+系统+mysql数据库+lW文档) 本源码技术栈: 项目架构:B/S ...

最新文章

  1. 百度云api android,帮助文档首页/百度移动统计API/百度移动统计 Android版SDK - 百度开放云平台...
  2. SSRS Report Knowledge Base
  3. 关于pipeline
  4. oracle分页查询前10条,Oracle查询前十条记录及分页查询(第5条到第10记录)
  5. 数据分析平台搭建案例
  6. What?你还搞不懂什么是物体检测?
  7. linux ssh 查看vg,linux SSH证书登录
  8. 易语言exe读写游戏例程源码_游戏工作室建立三步曲2019:脚本、防封与人工智能...
  9. 分组卷积和空洞卷积总结
  10. 2021vue面试题+答案
  11. 竞价推广过程中最难的问题是什么?
  12. python 图片识别_Python—识别图片中的文字
  13. 华尔街远邻 | 解读国际清算银行对加密货币的暧昧态度
  14. 如何用光盘自动安装win7操作系统
  15. 微信最新防封技术,域名防红技术分析
  16. 物联网操作系统再思考-Hello China操作系统的运营商网络协同机制
  17. 常用天气预报和资料网址
  18. 区块链DAPP开发 以太坊智能合约框架有哪些
  19. Spring报错 conflicts with existing, non-compatible bean definition of same name and class
  20. 微信qq邮箱提醒 服务器繁忙,微信设置密码失败,QQ无法绑定,邮箱服务器繁忙...

热门文章

  1. 【Luogu P2781】 传教
  2. JVM从入门到放弃——JVM内存模型
  3. mvn 修改所有子项目pom版本
  4. MYSQL-5.5二进制包安装
  5. 发一则自己创作的Lae程序员小漫画,仅供一乐
  6. 百度UEditor编辑器使用(二)
  7. c语言中'.'与'-'的区别
  8. Hibernate hql getHibernateTemplate()常用方法汇总
  9. JAVA高并发的三种实现
  10. mysql将不同行数结果合并成多列_将多行合并到mysql中的一行和多列