UVA1586

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(){
    int n;
    char s[100];
    int num;//数字
    scanf("%d",&n);
    for(int j=0;j<n;j++){
        scanf("%s",s);
        int len=strlen(s);
        double t=0.0;
        double count=0;
        num=0;//初始化为0
        for(int i=0;i<len;i++){
            if(s[i] == ‘C‘){
                t=12.01;
                count += t;
            }
            else if(s[i] == ‘H‘){
                t=1.008;
                count += t;
            }
            else if(s[i] == ‘O‘){
                t=16.00;
                count += t;
            }
            else if(s[i] == ‘N‘){
                t=14.01;
                count += t;
            }
            else {
                int a;
                a = (s[i]-‘0‘);
                                //判断数字有几位
                if(!isdigit(s[i+1])){
                    num += a;
                    count += (num-1)*t;
                    num=0;
                }
                else num += a*10;
            }
        }
        printf("%.3f\n",count);
    }
    return 0;
}
时间: 2024-12-08 17:14:21

UVA1586的相关文章

UVA1586 UVALive3900 Molar mass

Regionals 2007 >> Asia - Seoul 问题链接:UVA1586 UVALive3900 Molar mass.基础练习题,用C++语言编写程序. 这个问题是根据分子式,求分子量. 原子量使用map表来存储,所以用C++来编程. 程序中,使用函数getchar()处理输入流,需要更高的编程技巧. AC的C++语言程序如下: /* UVA1586 UVALive3900 Molar mass */ #include <iostream> #include <

UVa1586 Molar mass

#include <stdio.h> int GetQuantity(char* q, char** p){    int quantity = 0;    while (*q && '0' <= *q && *q <= '9')    {        quantity = quantity*10 + (*q-'0');        ++q;    }    if (quantity == 0)        quantity = 1;    *

3-2. Uva1586 Molar mass

#include<cstdio> #include<cstring> using namespace std; const double mol[4]={12.01,1.008,16.00,14.01}; void Do(){ char c[100]; double ans=0; memset(c,0,sizeof(c)); scanf("%s",&c); for(int i=0;c[i]!=0;i++){ double m=0; int n=0; in

分子量(Molar Counting, ACM/ICPC Seoul 2007, UVa1586)

An organic compound is any member of a large class of chemical compounds whose molecules contain carbon. The molar mass of an organic compound is the mass of one mole of the organic compound. The molar mass of an organic compound can be computed from

分子量(Molar Mass UVa1586)

题目来自张汝佳的<算法竞赛入门经典(第二版)> 题目描述: 我的代码: #include<iostream> #include<cstring> #include <iomanip> using namespace std; #define C 12.01 #define H 1.008 #define O 16.00 #define N 14.01 int main() { int i, k; char enter[1000]; cin >>

(UVA)1586 --Molar Mass(分子量)

题目链接:http://vjudge.net/problem/UVA-1586 思路:统计一个分子式中CHON出现的总次数,乘上相对原子量后求和.要注意的是CH4这样的C后面的1默认不出现,以及C4H10这样的后面的数字是两位的情况. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 int main() 7 { 8 int t,len; 9

小刘(第二版)

第三章 3.1 uva1585 uvalive3354 题意:错题0分,对题得分为目前位置连续正确数.求总分. 思路:模拟 代码: #include <cstdio> #include <cstring> char str[10000]; int main() { int t; scanf("%d", &t); while (t--) { scanf("%s", str); int res = 0; int now = 0; for

【OI】计算分子量 Molar mass UVa 1586 题解

题目:(由于UVa注册不了,还是用vjudge) https://vjudge.net/problem/UVA-1586 详细说明放在了注释里面.原创. 破题点在于对于一个元素的组合(元素+个数),只有3种可能: 1.单个元素 2.一个元素和一位数字 3.一个元素和两位数字 没有了.因为题设交代了n<=99,表明个数只能为2位数.分别判断即可. /* Copyright 2019 AlexanderZ.Tang Molar_mass.cpp For UVa 1586 https://cnblog

2019年2月做题记录

UVA10082 (字符串常量水题) UVA272 (字符串替换水题) UVA401 (回文串镜像串水题) UVA340 (模拟题) UVA1583 (打表水题) UVA1584 (暴力) UVA1585 (模拟) UVA1586 (数学) UVA1225 (打表水题) UVA455 (KMP算法) UVA232 (模拟+思维) UVA202 (除法高精度水题) UVA1587 (思维) UVA10340 (模拟,定序求交集) 原文地址:https://www.cnblogs.com/Aya-U