高中物理老師通常認為把問題隱藏在題目的文字中比單純計算要難得多,畢竟學生必須先看得懂題目才行!
所以他們不喜歡把題目出成像``電壓=10伏特,電流=5安培,請問電功率=?"這種類型,而比較喜歡出成``你有一組電路,包含一個電壓=10伏特的電池和一個燈泡。若現在有5安培的電流通過燈泡,請問燈泡的電功率是多少?"(由於本題Input與英文有關,茲將原文收錄如下:``You have an electrical circuit that contains a battery with a voltage of U=10V and a light-bulb. There's an electrical current of I=5A through the bulb. Which power is generated in the bulb?".)
然而超過半數的學生並不會把注意力放在那些文字上,他們只會設法從文字中找出已知條件:電壓=10伏特,電流=5安培。然後思索``我該用哪條公式?Ah, yes, P=I*V;所以P=10V*5A=500W。完成!"
OK,這個方法並不是每次都有用,所以通常這些學生在物理考試中得不到頂尖的成績,但至少這種簡單的演算法已足以獲得及格以上的成績。(遺憾但卻是事實)
現在我們要試試看電腦能不能通過高中物理考試,我們先來解決這個功率-電壓-電流(P-U-I type)的問題 ,也就是說題目給任兩個已知條件,你要求出第三個。
你的工作就是寫一支程式可以讀入一段題目的文字,並根據上面所描述的簡易演算法來求出答案。
輸入檔的第一行會先告訴你有多少個題目要求答案。
每一個問題由一列包括兩個明確的已知條件和一些額外的文字組成。已知條件會以下列格式出現:I=xA 或 U=xV 或者 P=xW(x屬於實數)
在單位(A,V或W)前可能會帶有一個數量級單位:m(milli,10的-3次方),k(kilo,10的3次方)或M(Mega,10的6次方)。總而言之,已知條件(data field)會遵守下列文法:
DataField ::= Concept '=' RealNumber [Prefix] Unit
Concept ::= 'P' | 'U' | 'I'
Prefix ::= 'm' | 'k' | 'M'
Unit ::= 'W' | 'V' | 'A'
額外說明 :
等號不會出現在已知條件(data field)外的地方。
已知條件(data field)中不會出現空白字元。
已知條件可能給 電壓+功率 或 功率+電流 或 電流+電壓 三種形式。
對每個題目必須輸出三列:
第一列輸出``Problem #k",k代表第幾題。
第二列輸出答案(試所求輸出電壓、功率或電流)並將數量級轉換為基本單位及兩位有效小數位數(見sample output)
第三列為空白行。