zoukankan      html  css  js  c++  java
  • 【UVa】[1586]Molar mass

    这里写图片描述
    题目英文说的很复杂
    其实就是给一个分子式求它的分子量

    读取字母判断原子量
    需要注意CO、H2O等原子量为1的情况
    (话说在下终于会用markdown写下标了)

    在这里也是给自己加了点难度
    用了递归的函数来查找原子个数

    写的过程中也是遇到了点状况
    好在最后还是一次AC了

    #include<stdio.h>
    #include<string.h>
    int t,l;
    char s[100];
    int find(int m) {
        if((s[m+1]>'A'&&s[m+1]<'Z')||(m+1==l)) {
            if(t==0)
                t=1;
            return t;
        } else {
            t=t*10+s[m+1]-'0';
            return find(++m);
        }
    }
    int main() {
        int n;
        double sum;
        scanf("%d",&n);
        while(n--) {
            scanf("%s",s);
            l=strlen(s);
            for(int i=sum=0; i<l; i++) {
                if(s[i]=='C') {
                    t=0;
                    sum+=12.01*find(i);
                } else if(s[i]=='H') {
                    t=0;
                    sum+=1.008*find(i);
                } else if(s[i]=='O') {
                    t=0;
                    sum+=16.00*find(i);
                } else if(s[i]=='N') {
                    t=0;
                    sum+=14.01*find(i);
                } else
                    continue;
            }
            printf("%.3lf\n",sum);
        }
        return 0;
    }

    题目地址:【UVa】[1586]Molar mass

  • 相关阅读:
    optparse--强大的命令行参数处理包
    B/S和C/S架构的区别
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569931.html
Copyright © 2011-2022 走看看