UVA - 537 Artificial Intelligence?
2016-07-05 23:50
302 查看
题目大意:给出 P,U,I 中任意两个量,根据 P = U * I 求剩下的。
解题思路:读取字符判断是否出现 P,U,I 且下一位为 =,用 %lf 直接读入数字,重复两次后计算即可。一开始自己全部读入题目再判断是否是数字,将字符化为数字,较繁琐而且一直 WA
解题思路:读取字符判断是否出现 P,U,I 且下一位为 =,用 %lf 直接读入数字,重复两次后计算即可。一开始自己全部读入题目再判断是否是数字,将字符化为数字,较繁琐而且一直 WA
#include<iostream> #include<cstdio> #include<string.h> using namespace std; char str[1000005]; int count = 0; int main() { int T; scanf("%d", &T); getchar(); while (T--) { char c; double P = 0, U = 0, I = 0; int t = 2; while (t--) { while ((c = getchar()) != '\n'){ if (c == 'I') { if ((c = getchar()) == '=') { scanf("%lf", &I); c = getchar(); if(c == 'm') I *= 0.001; if(c == 'k') I *= 1000; if(c == 'M') I *= 1000000; break; } } if (c == 'P') { if ((c = getchar()) == '=') { scanf("%lf", &P); c = getchar(); if(c == 'm') P *= 0.001; if(c == 'k') P *= 1000; if(c == 'M') P *= 1000000; break; } } if (c == 'U') { if ((c = getchar()) == '=') { scanf("%lf", &U); c = getchar(); if(c == 'm') U *= 0.001; if(c == 'k') U *= 1000; if(c == 'M') U *= 1000000; break; } } } } gets(str); printf("Problem #%d\n", ++count); if (P == 0) printf("P=%.2lfW\n\n", U * I); if (I == 0) printf("I=%.2lfA\n\n", P / U); if (U == 0) printf("U=%.2lfV\n\n", P / I); } return 0; }
相关文章推荐
- 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?