CPE 10454、UVA 10812程式解題。
解題觀念:
這題如果將他當成數學題去計算的話,你會怎麼處理呢??
嘛~我是用簡單的方程式去解題。
再來就是得分較高者要列在前面,而且不可能有負整數出現。
所以設兩隊分數為a、b;總和 s = a+b、差距 d = a-b。
做個小整理,a = (s+d)/2、b = s-a。
由上述可見,a一定為偶數(例外測資等等解釋),所以可以加個判斷式判斷a是否為偶數。
例外測資:但會遇到一種情況就是,總和為1,差距為0。==>比數為1:0。
還有比數為0:0的時候,這兩個情況都要另外判斷。
解題步驟:
(測資個數設定不多說囉)
讓使用者輸入雙方的總和、差距。
設兩組判斷式,判斷是否為心機測資。
如果不是,就將總和的數值和差距的數值相加存放到a,
判斷a是否為偶數,如果不是就印出impossible;如果是偶數就繼續下面的計算。
計算完之後,判斷b是否為負數。(如果是就代表a>s,是不可能的情況)
EX:
1(一組測資)
40 20
前兩個判斷式都不符合,所以繼續下面的計算。
a = 40+20 =60 => 60%2=0,為偶數 => 60/2 = 30 => b = 40-30=10。
b = 10 >0,不為負數,印出a、b。
BY 小K
沒有留言:
張貼留言