首页 > 其他 > 详细

uva1586molar mass字母和数

时间:2016-05-07 13:07:27      阅读:142      评论:0      收藏:0      [点我收藏+]

题意:给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C,H,O,N,原子量分别为12.01,1.008,16.00,14.01(单位:g/mol).

思路:做题时没注意到数字最多2位。

#include<cstdio>
#include<string.h>
#include<ctype.h>
#include<cstring>
#include<iostream>
using namespace std;

char x[300];

double mass(char a)
{
    if(a==‘C‘) return 12.01;
    if(a==‘H‘) return 1.008;
    if(a==‘O‘) return 16.00;
    if(a==‘N‘) return 14.01;
}
void solve()
{
    int len=strlen(x);
    double sum=0.0,m;
    x[len]=‘E‘;
    for(int i=0;i<len;i++)
    {
        if(x[i]>‘0‘&&x[i]<=‘9‘)
        {
            if(x[i-1]>‘0‘&&x[i-1]<=‘9‘)continue;
            else
            {
                if(x[i+1]>‘0‘&&x[i+1]<=‘9‘)sum+=(((int)(x[i]-‘0‘))*10+(((int)((x[i+1])-‘0‘))-1))*m;
                else sum+=m*(((int)(x[i]-‘0‘))-1);
            }
        }
        else
        {
            m=mass(x[i]);
            sum+=m;
        }
    }
    printf("%.3lf\n",sum);
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",x);
        solve();
        memset(x,0,sizeof(x));
    }
    return 0;
}

 

uva1586molar mass字母和数

原文:http://www.cnblogs.com/mu-ye/p/5467897.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!