zoukankan      html  css  js  c++  java
  • D

    - 题目大意

           计算分子式质量不过元素只有C,H,O,N,而且结果要保留3个小数喔。

    - 题解

            建立字母到数值的映射数组。 原子后面跟的可能为个数可能为多位数,注意让i直接向后跳一步。碰到字母直接加原子量;碰到数字用(数字-1)乘以last atom的原子量即可。

    - 代码

    #include<cstdio>
    #include<ctype.h>
    char s[150];
    const double d[] = {0,0,12.01,0,0,0,0,1.008,0,0,0,0,0,14.01,16.00};
    int main() {
        int t;
        scanf("%d", &t);
        while(t--) {
            double sum = 0;
            int n;
            scanf("%s", s);
            char x = s[0];
            for(int i = 0; s[i] != ''; ++i) {
                if(isalpha(s[i])) {
                    x = s[i];
                    sum += d[x-'A'];
                }
                else {
                    n = s[i]-'0';
                    if(isdigit(s[i+1])) {
                        n = n*10 + (s[i+1]-'0');
                        i++;
                    }
                    sum += d[x-'A']*(n-1);
                }
            }
            printf("%.3f
    ", sum);
        }
        return 0;
    }
    

      

  • 相关阅读:
    感悟.学习的方式
    IOS地理信息使用
    IOSTimer的例子留个备注
    IOSSelector的用法
    ios中addtarget的用法
    ios绘图时的坐标处理
    mac下装Ruby
    iOSbase64
    ios跳转
    Misha and Palindrome Degree CodeForces
  • 原文地址:https://www.cnblogs.com/alpacadh/p/8431397.html
Copyright © 2011-2022 走看看