UVaOJ 537 - Artificial Intelligence?
2012-11-09 20:13
295 查看
AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume
1. Elementary Problem Solving :: String
Description
物理老师提问,根据 P = IU 这个公式计算并回答。
提问会告诉你公式中的任意两个元素的值,求出第三个元素的值。
因此,提问语句中含有两个 DataField,DataField的格式如下:
DataField ::= Concept '=' RealNumber [Prefix] Unit
Concept ::= 'P' | 'U' | 'I'
Prefix ::= 'm' | 'k' | 'M'
Unit ::= 'W' | 'V' | 'A'
其中,Prefix可为 m (milli) 、k (kilo) 或 M (Mega) 。
并且题目的输入保证如下三点:
“=”在提问语句里,只出现在DataField中。
DataField中不出现多余空格。
题目保证三个元素中有且只有给出两个元素的值。
Type
String
Analysis
找到提问语句中的“=”,以“=”为基准,
在“=”两边找到我们需要的数据即可。
Solution
1. Elementary Problem Solving :: String
Description
物理老师提问,根据 P = IU 这个公式计算并回答。
提问会告诉你公式中的任意两个元素的值,求出第三个元素的值。
因此,提问语句中含有两个 DataField,DataField的格式如下:
DataField ::= Concept '=' RealNumber [Prefix] Unit
Concept ::= 'P' | 'U' | 'I'
Prefix ::= 'm' | 'k' | 'M'
Unit ::= 'W' | 'V' | 'A'
其中,Prefix可为 m (milli) 、k (kilo) 或 M (Mega) 。
并且题目的输入保证如下三点:
“=”在提问语句里,只出现在DataField中。
DataField中不出现多余空格。
题目保证三个元素中有且只有给出两个元素的值。
Type
String
Analysis
找到提问语句中的“=”,以“=”为基准,
在“=”两边找到我们需要的数据即可。
Solution
// UVaOJ 537 // Artificial Intelligence // by A Code Rabbit #include <cstdio> #include <cstring> #include <iostream> #include <string> using namespace std; const char CONCEPT[] = {'I', 'U', 'P'}; string str; double real[3]; bool bo[3]; void Read(int idx); int main() { int tot_case; scanf("%d", &tot_case); getchar(); for (int t = 1; t <= tot_case; t++) { // Input. getline(cin, str); // Solve. memset(bo, false, sizeof(bo)); Read(str.find_first_of('=')); Read(str.find_last_of('=')); // Output. printf("Problem #%d\n", t); if (!bo[0]) printf("I=%.2lfA\n", real[2] / real[1]); else if (!bo[1]) printf("U=%.2lfV\n", real[2] / real[0]); else if (!bo[2]) printf("P=%.2lfW\n", real[0] * real[1]); printf("\n"); } return 0; } void Read(int idx) { double val; char ch; string tmp = str.substr(idx + 1); sscanf(tmp.c_str(), "%lf%c", &val, &ch); if (ch == 'm') val /= 1000; else if (ch == 'k') val *= 1000; else if (ch == 'M') val *= 1000000; char concept = str[idx - 1]; for (int i = 0; i < 3; i++) { if (concept == CONCEPT[i]) { real[i] = val; bo[i] = true; } } }
相关文章推荐
- UvaOJ 537 - Artificial Intelligence?
- UVaOJ 537
- UVAOJ 537 ——Artificial Intelligence? 模拟
- UVAOJ 537字符串处理
- UVaOJ 537 - Artificial Intelligence?
- UvaOJ 537 - Artificial Intelligence?
- UvaOJ 537 - Artificial Intelligence?
- UVaoj 340 Master-Mind Hints
- uvaoj 445 - Marvelous Mazes
- UVaOj 494 Kindergarten Counting Game
- UvaOJ 10014 - Simple calculations
- UVa 537 - Artificial Intelligence?
- uvaoj 457
- UVaOJ 10004 - Bicoloring
- UVaOJ 10048 - Audiophobia
- UVaOJ 445 - Marvelous Mazes
- UVaOJ 10189 - Minesweeper
- UVaOJ 644 - Immediate Decodability
- POJ 3667 hotel 和 NYOJ 537 hotel 【线段树之区间合并】
- UVaOJ297---Quadtrees