8626 原子量計數

分析:
1. **讀取輸入**:首先,我們需要讀取輸入中的第一行,了解有多少個化學式需要處理。之后,對于每個化學式,我們逐行讀取并進行處理。
2. **解析化學式**:對于每個化學式,我們需要遍歷其字符串,識別出元素(C, H, O, N)及其后可能跟隨的數字(表示該元素的數量)。如果元素后沒有數字,則默認數量為1。
3. **計算分子量**:通過查找每個元素對應的原子量(C: 12.01 g/mol, H: 1.008 g/mol, O: 16.00 g/mol, N: 14.01 g/mol),并乘以該元素的數量,我們可以計算出每個元素的總質量。將所有元素的總質量相加,得到整個化學式的分子量。
4. **輸出結果**:對于每個化學式,計算完成后輸出其分子量,保留三位小數。

代碼實現:


#include <iostream>
#include <string>
#include <map>
#include <iomanip>using namespace std;// Function to calculate the mass of a chemical formula
double calculateMass(const string& formula, const map<char, double>& atomicMasses) {double totalMass = 0.0;int i = 0;while (i < formula.length()) {char element = formula[i];int quantity = 0; // Initialize quantity to 0i++;// Loop to calculate the quantity of the current elementwhile (i < formula.length() && isdigit(formula[i])) {quantity = quantity * 10 + (formula[i] - '0');i++;}// If quantity is still 0, it means there was no number after the element, so set it to 1if (quantity == 0) {quantity = 1;}// Add the mass of the current element to the total masstotalMass += atomicMasses.at(element) * quantity;}return totalMass;
}int main() {int T;cin >> T;// Map to store the atomic masses of the elementsmap<char, double> atomicMasses = {{'C', 12.01},{'H', 1.008},{'O', 16.00},{'N', 14.01}};while (T--) {string formula;cin >> formula;cout << setprecision(3) << fixed << calculateMass(formula, atomicMasses) << endl;}return 0;
}

這段代碼通過定義一個`calculateMass`函數來處理核心邏輯,該函數接受一個化學式字符串和一個元素原子量的映射表作為參數。通過遍歷化學式字符串,識別元素及其數量,并利用映射表查找對應的原子量進行計算,最終得到化學式的總分子量。`main`函數中,首先讀取案例數量,然后對每個化學式調用`calculateMass`函數進行處理,并輸出結果。通過使用`setprecision`和`fixed`,確保輸出的分子量保留三位小數,滿足題目要求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/45111.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45111.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45111.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

8627 數獨

為了判斷數獨解是否合法&#xff0c;我們需要遵循以下步驟&#xff1a; 1. **檢查每一行**&#xff1a;確保1到9每個數字在每一行中只出現一次。 2. **檢查每一列**&#xff1a;確保1到9每個數字在每一列中只出現一次。 3. **檢查每個3x3的宮**&#xff1a;確保1到9每個數字在…

細胞通訊之cellchat的流程

愿武藝晴小朋友一定得每天都開心 在細胞通訊的領域內有cellphoneDB、cellchat、iTALK等多種cell-cell communication的工具; 其中cellchat,我覺得它比較的親民和好看吧^_^ cellchat <- createCellChat(Matrix(health@assays$RNA$data,sparse = T), #用于seurat.v5對象 …

文件類:如何將excel文件轉為csv文件(且保留時間格式)?

最近有個場景&#xff0c;在ftp服務器上&#xff0c;讀取csv文件并入庫&#xff0c;但是客戶提供的一部分文件卻是xls文件&#xff0c;就得搞個將excel轉為csv文件的方法&#xff0c;話不多說直接開干。 方法 public static void convertExcelToCSV(String excelFilePath, Str…

掌握axios與Vue 3:構建高效HTTP請求的終極指南

引言 axios作為一個廣泛使用的JavaScript庫&#xff0c;因其簡潔的API、強大的功能和良好的瀏覽器兼容性&#xff0c;成為了許多前端開發者在Vue 3項目中的首選。 axios簡介 axios是什么&#xff1f; axios是一個基于Promise的HTTP客戶端&#xff0c;用于瀏覽器和node.js環境…

【視頻】R語言廣義加性模型GAMs非線性效應、比較分析草種耐寒性實驗數據可視化

全文鏈接&#xff1a;https://tecdat.cn/?p36979 原文出處&#xff1a;拓端數據部落公眾號 廣義加法模型&#xff08;Generalized Additive Models, GAMs&#xff09;作為一種高度靈活的統計工具&#xff0c;顯著擴展了廣義線性模型&#xff08;Generalized Linear Models, …

我被手機所傷,竟如此憔悴。

臨睡前&#xff0c;剛刷完小視頻&#xff0c;感覺好無聊。一陣陣空虛感襲來。看看時間&#xff0c;哦&#xff0c;原來我下班后一直從6點刷視頻到11點。 哎&#xff0c;太空虛了&#xff0c;又馬上要睡覺了&#xff0c;為什么會這么難受呢?明明我大學&#xff0c;高中&#x…

代碼隨想錄算法訓練營第9天

151.反轉字符串中的單詞 題目鏈接&#xff1a;151. 反轉字符串中的單詞 - 力扣&#xff08;LeetCode&#xff09; 視頻鏈接&#xff1a;代碼隨想錄 (programmercarl.com) 第一想法 使用split函數然后倒序相加 代碼隨想錄想法 先去除空格&#xff0c;再將整個字符串反轉&…

Android11 應用啟動流程

應用層調用startActivity&#xff0c;會跨進程調用導致ATMS的startActivityAsUser方法被調用 //frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java private int startActivityAsUser(IApplicationThread caller, String callingPack…

數字信號處理及MATLAB仿真(4)——量化的其他概念

上回書說到AD轉換的兩個步驟——量化與采樣兩個步驟。現在更加深入的去了解以下對應的概念。學無止境&#xff0c;要不斷地努力才有好的收獲。萬丈高樓平地起&#xff0c;唯有打好基礎&#xff0c;才能踏實前行。 不說了&#xff0c;今天咱們繼續說說這兩個步驟&#xff0c;首先…

每日刷題(二分圖,二分查找,dfs搜索)

目錄 1.P3853 [TJOI2007] 路標設置 2.P1129 [ZJOI2007] 矩陣游戲 3.P1330 封鎖陽光大學 4.Trees 5.P1141 01迷宮 1.P3853 [TJOI2007] 路標設置 P3853 [TJOI2007] 路標設置 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 先求出每個路標之間的距離&#xff0c;再二分查找每…

新媒體運營都需要掌握哪些技術?沈陽新媒體運營免費培訓

新媒體運營需要掌握的技術包括內容創作、FAB產品介紹法、用戶運營、社群運營、活動策劃和數據分析。這個崗位在現代社會中的重要性日益突出&#xff0c;隨著互聯網的發展&#xff0c;新媒體已成為人們獲取信息的主要渠道之一&#xff0c;而新媒體運營則是通過各種新媒體平臺進行…

數據庫系統原理練習 | 作業2-第2章關系數據庫(附答案)

整理自博主本科《數據庫系統原理》專業課完成的課后作業&#xff0c;以便各位學習數據庫系統概論的小伙伴們參考、學習。 *文中若存在書寫不合理的地方&#xff0c;歡迎各位斧正。 專業課本&#xff1a; 目錄 一、選擇題 二、填空題 三、簡答題 四、關系代數 1.課本p70頁&…

hive中reverse函數

目錄 前言基本函數介紹實戰 前言 reverse函數&#xff0c;是一個常用的字符串處理函數&#xff0c;很多編程語言都有。最近開發中&#xff0c;遇到一個reverse解決的需求&#xff0c;發現自己尚未總結過&#xff0c;遂補上。 基本函數介紹 SELECT reverse(string_column) FR…

虛擬機安裝Linux CENTOS 07 部署NET8 踩坑大全

首先下載centos07鏡像&#xff0c;建議使用阿里云推薦的地址&#xff1a; https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.59b5f5ad5Nfr0X 其實這里就已經出現第一個坑了 centos 07 /usr/lib64/ 的 libstdc.so只支持到19&#xff1b; GLI…

數據湖表格式 Hudi/Iceberg/DeltaLake/Paimon TPCDS 性能對比(Spark 引擎)

當前&#xff0c;業界流行的集中數據湖表格式 Hudi/Iceberg/DeltaLake&#xff0c;和最近出現并且在國內比較火的 Paimon。我們現在看到的很多是針對流處理場景的讀寫性能測試&#xff0c;那么本篇文章我們將回歸到大數據最基礎的場景&#xff0c;對海量數據的批處理查詢。本文…

Java中的線程同步機制有哪些?

Java中的線程同步機制是一套用于協調線程間的數據訪問及活動的機制&#xff0c;該機制用于保障線程安全以及實現這些線程的共同目標。Java平臺提供的線程同步機制主要包括以下幾個方面&#xff1a; 1. 鎖&#xff08;Lock&#xff09; 鎖是Java中最基本的線程同步機制之一&am…

飛書、釘釘、企業微信的大模型“三國殺”

文&#xff1a;互聯網江湖 作者&#xff1a;劉致呈 曾經在一次內部的周年會上&#xff0c;字節跳動CEO梁汝波曾表示對飛書和火山引擎的研發投入不低于抖音和TikTok。言下之意&#xff0c;飛書在字節內部的重要性比肩抖音。 業務的重要性從時間上也看得出來&#xff0c;要知道…

靜態時序分析:Leaf Cell(葉單元)

相關閱讀???????靜態時序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 在DC中&#xff0c;leaf cell&#xff08;葉單元&#xff09;有時會出現在描述中&#xff0c;例如set_input_delay的-reference_pin選項的參數&#xff0c;就必須是一個端口或…

C# Winform之propertyGrid控件使用詳解和分組設置

PropertyGrid 控件在 WinForms 中是一個非常有用的工具&#xff0c;它允許用戶查看和編輯一個對象的屬性。這個控件非常適合用于配置對話框或任何需要動態顯示對象屬性的地方。下面我會詳細介紹 PropertyGrid 的使用方法和如何對屬性進行分組。 使用詳解 1. 添加 PropertyGri…

《昇思25天學習打卡營第18天|onereal》

RNN實現情感分類 概述 情感分類是自然語言處理中的經典任務&#xff0c;是典型的分類問題。本節使用MindSpore實現一個基于RNN網絡的情感分類模型&#xff0c;實現如下的效果&#xff1a; 輸入: This film is terrible 正確標簽: Negative 預測標簽: Negative輸入: This film…