題解|ZeroJudge a012. 10055 - Hashmat the Brave Warrior

【題目】a012. 10055 - Hashmat the Brave Warrior

題解

a012.py
1
2
3
4
5
6
while True:
try:
a,b = map(int, input().split())
print(abs(a-b))
except EOFError:
break

解說

這題要我們列出雙方士兵的數目差,首先我們先以map(int, input().split())的方式來接收變數(延伸閱讀:題解|ZeroJudge c004. 10812 - Beat the Spread!),並分別指派給變數a及b。
接下來我們要計算差值a-b,請注意,因為我們沒辦法限制題目在輸入時先輸入較大的數字,因此可能發生a<b的情況,這個時候a-b會變成負數
因此,我們會需要加上絕對值來確保求出的答案都是正數
所以,我們將a-b放入函數abs()中,變成abs(a-b),這樣求出來的結果就是a-b的絕對值了。

接著,由於我們不知道一組測資有多少筆資料,因此我們讓程式一直執行,直到EOF,所以我們加上這個結構

1
2
3
4
5
while True:
try:
#code
except EOFError:
break

(延伸閱讀:題解|ZeroJudge e578. 10222 - Decode the Mad man
這樣,就可以讓try裡面的程式重複執行直至EOFError

結語

以上就是本題題解
倘內容有誤或仍有疑問,歡迎在下方留言區留言!