必威体育Betway必威体育官网
当前位置:首页 > IT技术

相对分子质量

时间:2019-10-05 10:12:05来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

相对分子质量

小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成的化学产物的相对分子质量令他很困惑,不知如何计算,请你编程帮他计算。

输入的第一行是一个正整数n,表示有n组测试数据

接下来n行每行输入一个字符串,表示某个分子式,分子式中只包含大写字母和数字。

注意:

输入数据只包含8种元素,而这8种元素的相对原子质量如下:

H(1),C(12),N(14),O(16),F(19),P(31),S(32),K(39)。

对于每组输入,输出相对分子质量。

样例输入:

4

H2O

KOH

CH4

SO2

import java.util.scanner;
 
public class Main {
    
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextint();//运行n次
         for(int q=0;q<n;q++){
        String fat=sc.next();//输入化学元素
        int total=0;//相对原子质量
        int sum=1;
        char num;
        String a="";
        for(int z=fat.length()-1;z>=0;z--){
           num=fat.charAt(z);//将fat字符串的第z个数转为char类型
           if(num>='0'&&num<='9'){
               a=a+num;
           }
           else{
               if(a.equals("")){
                   sum=1;
               }
               else{
                   sum=integer.parseInt(a);
               }
               total+=factor.f(num)*sum;
               a="";
           }
        }
        System.out.println(total);
}
      
    }
}
 
class factor{
    private char no;
    public static int f(char no) {
        //H(1),C(12),N(14),O(16),F(19),P(31),S(32),K(39)     
        int i=0;
    switch(no){
            case 'H':
            i=1;
            break;
            case 'C':
                i= 12; 
                break;
            case 'N':
            i=14;
            break;
             case 'O':
           i= 16;
            break;
            case 'F':
            i= 19;
            break;
             case 'P':
            i= 31;
             break;
             case 'S':
            i= 32;
             break;
             case 'K':
            i= 39;
             break;
             default:
                 break;
        }
    return i;
   }
}

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读