UVa 1586 - Molar mass

来源:互联网 发布:锤子bigbang软件 编辑:程序博客网 时间:2024/05/18 20:46

題目:給你一個分子式,計算相對分子質量。

分析:簡單題。字符串處理,識別數字乘以前面的分子即可。

說明:╮(╯▽╰)╭。

#include <cstdio>#include <cstring>double mass[256];int main(){memset(mass, 0, sizeof(mass));mass['C'] = 12.01;mass['H'] = 1.008;mass['O'] = 16.00;mass['N'] = 14.01;int  n;char buf[1001];while (~scanf("%d",&n))while (n --) {scanf("%s",buf);double sum = 0.0;buf[strlen(buf)] = 'E';for (int i = 0; buf[i] != 'E'; ++ i)if (mass[buf[i]]) {if (buf[i+1] < '0' || buf[i+1] > '9')sum += mass[buf[i]];else {int size = 0, now = i+1;while (buf[now] >= '0' && buf[now] <= '9')size = size*10 + buf[now ++]-'0';sum += mass[buf[i]]*size;}}printf("%.3lf\n",sum);}    return 0;}


0 0