Molar mass UVA - 1586
2017-04-03 12:37
288 查看
问题类型:字符串,条件判断。
03pie’s solution for [UVA-1586]:
03pie’s solution for [UVA-1586]:
#include<cstdio> #include<iostream> #include<sstream> #include<cstdlib> #include<cmath> #include<cctype> #include<string> #include<cstring> #include<algorithm> #include<stack> #include<queue> #include<set> #include<map> #include<ctime> #include<vector> #include<fstream> #include<list> using namespace std; #define ms(s) memset(s,0,sizeof(s))typedef unsigned long long ULL; typedef long long LL; const double PI = 3.141592653589; const int INF = 0x3fffffff; float v(char a) { float q; if(a=='C') q=12.01; if(a=='H') q=1.008; if(a=='O') q=16.00; if(a=='N') q=14.01; return q; } #define maxn 90 int main(){ // freopen("F://inp.txt","r",stdin); char gs[maxn]; int T; scanf("%d",&T); while(T--) { scanf("%s",gs); int len=strlen(gs); float toll=0; int nubl=0,p=0; for(int i=0;i<len;i++) { char car; if(isalpha(gs[i]))//是字母 { if(gs[i+1]=='\0'||isalpha(gs[i+1])) { // printf("tool=%.3f\n",toll); toll+=(v(gs[i])); // printf("tool=%.3f\n",toll); } } if(isdigit(gs[i]))//是数字 { if(isalpha(gs[i-1]))//前一位是字母 { car=gs[i-1]; nubl=(gs[i]-'0'); } if(isdigit(gs[i-1]))//前一位是数字 { nubl=nubl*10+(gs[i]-'0'); } if(isalpha(gs[i+1])||gs[i+1]=='\0')//后一位是字母 ,和结束 { toll+=nubl*v(car); } } } printf("%.3f\n",toll); } return 0; }
相关文章推荐
- 算法竞赛入门经典第三章3-2 Molar mass UVA - 1586
- Molar mass UVA - 1586
- Molar mass UVA - 1586
- UVA - 1586 Molar mass c++解答
- chaper3_exerise_Uva1568_Molar_Mass_分子量
- Uva 1586
- UVA - 1586 Molar mass
- UVA-1586分子量
- 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
- 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
- uva 1586 - Molar mass
- 算法竞赛入门经典3.2 分子量UVa1586
- 【UVA 1586】Ancient Cipher
- UVa1586(c++实现)
- UVA 1586 ----Molar mass
- 【习题3-2】 UVA - 1586 Molar mass
- UVa 1586 - Molar mass
- UVa1586 分子量 算法竞赛入门经典第二版CH-3习题3-2
- Uva 1586 Molar mass 水模拟
- UVA 1586 分子量(Molar Mass)