首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

UVA 1586 分子量計算:化學式字符串解析

     編輯:關於C++

題目大意

輸入化學式字符串(只含 C,H,O,N 及數字),計算分子量。原子量:C=12.01, H=1.008, O=16.00, N=14.01。數字表示原子個數(無數字視為 1),兩位數可能(如 12)。多測試用例。

解析邏輯

掃描字符串,遇大寫字母識別元素,查表得原子量;隨後檢查後續 1-2 位數字作為計數,默認 1。累加 `mass * count`,輸出保留 3 位小數。

關鍵細節

  • 字符串長度 ≤ 80,直接 O(n) 掃描。
  • 數字解析:`if (isdigit(s[i+1]))` 讀取一位或兩位。
  • 初始化 `sum=0` 在測試用例循環內,避免跨用例殘留。

代碼片段

for (int i=0; i=10 ? 2 : 1); // 跳過數字位
    }
    sum += mass * cnt;
}

總結

字符串單掃描解析,注意數字可能兩位、大小寫區分、測試用例變量重置,輸出格式 `%.3lf`。基礎字符串處理好題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved