UVa 1586 - Molar mass
2016-07-25 20:35
531 查看
UVa 1586 - Molar mass
题目是PDF格式
所以这里直接上传送门
写的很复杂,哈哈哈,估计就我自己看得懂#include <stdio.h> #include <string.h> #include <stdlib.h> #define C 12.01 #define H 1.008 #define O 16.00 #define N 14.01 int main() { int n; scanf("%d",&n); char str[100]; getchar(); while(n--) { double Sum=0.000; char s; scanf("%s",str); getchar(); int n=strlen(str); for(int i=0; i<n; i++) { if(str[i]=='C') { if(str[i+1]>='1'&&str[i+1]<='9') { if(str[i+2]>='0'&&str[i+2]<='9') { Sum+=C*((str[i+1]-'0')*10+str[i+2]-'0'); } else Sum+=C*(str[i+1]-'0'); } else Sum+=C; } else if(str[i]=='H') { if(str[i+1]>='1'&&str[i+1]<='9') { if(str[i+2]>='0'&&str[i+2]<='9') { Sum+=H*((str[i+1]-'0')*10+str[i+2]-'0'); } else Sum+=H*(str[i+1]-'0'); } else Sum+=H; } else if(str[i]=='O') { if(str[i+1]>='1'&&str[i+1]<='9') { if(str[i+2]>='0'&&str[i+2]<='9') { Sum+=O*((str[i+1]-'0')*10+str[i+2]-'0'); } else Sum+=O*(str[i+1]-'0'); } else Sum+=O; } else if(str[i]=='N') { if(str[i+1]>='1'&&str[i+1]<='9') { if(str[i+2]>='0'&&str[i+2]<='9') { Sum+=N*((str[i+1]-'0')*10+str[i+2]-'0'); } else Sum+=N*(str[i+1]-'0'); } else Sum+=N; } } printf("%.3f\n",Sum); } return 0; }
UVa的题目难度确实大不少
相关文章推荐
- 1.10055 - Hashmat the brave warrior
- 2.10071 - Back to High School Physics
- 3.458 - The Decoder
- 4.694 - The Collatz Sequence
- 6.494 - Kindergarten Counting Game
- 7.490 - Rotating Sentences
- 8.414 - Machined Surfaces
- 9.488 - Triangle Wave
- A.457 - Linear Cellular Automata
- B.489 - Hangman Judge
- C.445 - Marvelous Mazes
- 1.10494 - If We Were a Child Again
- 2.424 - Integer Inquiry
- 3.10250 - The Other Two Trees
- 5.465 - Overflow
- 6.113 - Power of Cryptography
- 7.10161 - Ant on a Chessboard
- 8.621 - Secret Research
- 9.401 - Palindromes
- A.537 - Artificial Intelligence?