【习题 3-2 UVA - 1586】Molar mass

【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

模拟. 主要是找那个数字。

【代码】

#include <bits/stdc++.h>
using namespace std;

double dic[300];

int main()
{
	/*freopen("F:\\rush.txt", "r", stdin);*/
	int T;
	scanf("%d", &T);
	dic['C'] = 12.01;
	dic['H'] = 1.008;
	dic['O'] = 16.00;
	dic['N'] = 14.01;
	while (T--)
	{
		string s;
		cin >> s;
		double ans = 0;
		int len = s.size();
		for (int i = 0; i < len; i++)
			if (i+1>=len || isalpha(s[i+1]))
			{
				ans += dic[s[i]];
			}
			else 
			{
				int j = (i + 1);
				while (j + 1 < len && isdigit(s[j + 1])) j++;
				int num = 0;
				for (int k = i + 1; k <= j; k++)
					num = num * 10 + s[k] - '0';
				ans += 1.0*dic[s[i]] * num;
				i = j;
			}
		printf("%.3f\n", ans);
	}
	return 0;
}
posted @ 2017-10-17 20:12  AWCXV  阅读(187)  评论(0编辑  收藏  举报