uva 537
来源:互联网 发布:知彼定位 编辑:程序博客网 时间:2024/04/28 04:47
一道关于字符串的简单题,主要就是从字符串中找到两个等号的位置后,进行分析便可。
另外注意前缀所代表的数值大小(k, M, m)
#include <iostream>#include <stdlib.h>#include <stdio.h>#include <string>#include <sstream>using namespace std;int kasenum;string str;double power, volt, curr;int pos[3];char ch;double scan(int index){bool flag = false;double res = 0.0, frac = 0.0, ratio = 0.1, multi = 1;if ('-' == str[index])flag = true;else if (str[index] >= '0' && str[index] <= '9')res = str[index] - '0';index++;while (str[index] >= '0' && str[index] <= '9'){res = res * 10 + str[index] - '0';index++;}if ('.' == str[index]){index++;while (str[index] >= '0' && str[index] <= '9'){frac = frac + ratio * (str[index] - '0');index++;ratio *= 0.1;}}res += frac;switch (str[index]){case 'm':multi = 1e-3;break;case 'k':multi = 1e+3;break;case 'M':multi = 1e+6;break;default:multi = 1.0;break;}res *= multi;return flag ? -res : res;}void readInfo(){getline(cin, str);pos[0] = str.find('=');pos[1] = str.find('=', pos[0] + 1);for (int i = 0; i < 2; i++){switch (str[pos[i] - 1]){case 'U':volt = scan(pos[i] + 1);break;case 'I':curr = scan(pos[i] + 1);break;case 'P':power = scan(pos[i] + 1);break;}}}int main(){freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);scanf("%d", &kasenum);getchar();int kase = 0;while (kasenum--){power = -1;volt = -1;curr = -1;readInfo();printf("Problem #%d\n", ++kase);if (-1 == power)printf("P=%.2lfW\n", volt * curr);else if (-1 == volt)printf("U=%.2lfV\n", power / curr);elseprintf("I=%.2lfA\n", power / volt);printf("\n");}return 0;}
0 0
- UVA - UVA - 537 Artificial
- UVA 537
- uva-537
- uva 537
- uva 537
- uva 537
- UVa-537
- uva 537
- UVA 537
- UVA 537
- uva 537
- uva 537
- UVA 537
- uva 537 Artificial Intelligence?
- UVa 537 - Artificial Intelligence?
- UVa 537 - Artificial Intelligence?
- UVA 试题 537
- UVa 537 - Artificial Intelligence?
- 实名验证身份证信息
- 小游戏之扫雷
- 2016这些Android技术可能会很火
- 条件概率
- python核心编程第五章练习
- uva 537
- HDU-1251 统计难题(字典树)
- 艰难的起步
- Memory Card、逻辑加密卡、CPU卡
- C#将wps表格读到datatable中并显示在页面
- 大话设计模式15----抽象工厂模式
- warning C4305:“初始化”:从“double”到“float”截断
- Android 中 Canvas 绘图之 Shader 使用图文详解
- Linux - ncat ssl backdoor