今天也是跟昨天一樣,要來練習比較難的題目,就是APCS啦,今天要來練習的題目是APCS 106年3月4日 的實作題第一題,秘密差,那我們就開始吧!
a=input() #輸入數字
list=list(a) #將數字轉為清單,例:13轉為['1','3']
list.reverse() #將列表反轉,可確定清單第0項為奇數項
b=len(a) #把b設為此數字長度(位數)
sum=0 #先設累積數字為0
for i in range(0,b,2): #此迴圈找出奇數項,0 2 4...項為奇數項
sum=sum+int(list[i]) #將sum加上每一個奇數項數字
for j in range(1,b,2): #此迴圈找出偶數項,1 3 5...項為偶數項
sum=sum-int(list[j]) #將sum減去每一個偶數項數字
if sum<0: #如果sum為負,將他轉為正整數
sum=-sum
print(sum) #列印
那我都有把解釋寫在旁邊,那我解釋一下要把列表反轉的原因,因為可以不論數字位數,都能確定奇數偶數的位置。那再來是迴圈,我利用兩個迴圈,一個找奇數,另一個找偶數,然後奇數用加的,偶數用減的,就可以算出差。但是有可能算出來的數字是負數,而題目要求要加上絕對值,所以最後轉為正整數。那當然也可以用我之前有講過的math套件,可以直接一條程式碼帶過。