1586
来源:互联网 发布:淘宝店铺推广策划书 编辑:程序博客网 时间:2024/06/06 15:53
紫书上习题3-2,这道题我用的普通的 for 循环做的,逐个判断字符,若该字符为 C , H , O , N ,则判断该字符的后两位是否为数字,是数字就乘以该字符的原子量,最后求和;
v#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <iomanip>#include <algorithm>using namespace std;int main(){ char C,H,O,N; string S;int n,p; while(cin>>n){ while(n--){ cin>>S; int len=S.length();double sum=0; for(int i=0;i<len;i++){ if(S[i]=='C'){ if(S[i+1]>=49&&S[i+1]<=57){ if(S[i+2]>=48&&S[i+2]<=57) p=10*(S[i+1]-'0')+(S[i+2]-'0'); else p=S[i+1]-'0'; } else p=1; sum=sum+12.010*p; } else if(S[i]=='H'){ if(S[i+1]>=49&&S[i+1]<=57){ if(S[i+2]>=48&&S[i+2]<=57) p=10*(S[i+1]-'0')+(S[i+2]-'0'); else p=S[i+1]-'0'; } else p=1; sum=sum+1.008*p; } else if(S[i]=='O'){ if(S[i+1]>=49&&S[i+1]<=57){ if(S[i+2]>=48&&S[i+2]<=57) p=10*(S[i+1]-'0')+(S[i+2]-'0'); else p=S[i+1]-48; } else p=1; sum=sum+16.000*p; } else if(S[i]=='N'){ if(S[i+1]>=49&&S[i+1]<=57){ if(S[i+2]>=48&&S[i+2]<=57) p=10*(S[i+1]-'0')+(S[i+2]-'0'); else p=S[i+1]-'0'; } else p=1; sum=sum+14.01*p; } else continue; } cout<<fixed<<setprecision(3)<<sum<<endl; } } return 0;}
0 0
- 1586
- zoj 1586
- URAL 1586
- ZOJ-1586
- UVa-1586
- UVa 1586
- UVa 1586
- ZOJ 1586
- ZOJ 1586
- ZOJ 1586
- UVA 1586
- Uva 1586
- UVA-1586
- 【UVa - 1586】
- UVa-1586
- UVA 1586
- UVa.1586
- UVA 1586
- C++ LZW算法
- java并发——并发容器
- 解决tomcat 等一些服务端口被占用的问题
- JAVA HashMap判断冲突及其解决冲突策略
- 为什么要写房卡麻将系列文章
- 1586
- 三子棋
- MongoDB基础教程系列--第六篇 MongoDB 索引
- 输密码小程序
- 1
- 2
- 程序员之路#1
- [计算机视觉][ARM-Linux开发]OpenCV 3.1下载 ippicv_linux_20151201失败
- 4.8