問題描述
將一個十進位正整數的奇和稱為 A,偶數位的和稱為 ,偶數位的和稱為 B,則 A與 B的絕 對差值 |A -B| 稱為這個正整數的秘密差。 稱為這個正整數的秘密差。
例如: 263541 的奇數位和 A = 6+5+1 12A = 6+5+1 12A = 6+5+1 12A = 6+5+1 12A = 6+5+1 12 A = 6+5+1 12A = 6+5+1 12A = 6+5+1 12 A = 6+5+1 12A = 6+5+1 12A = 6+5+1 12 ,偶數位的和 B = 2+3+4 9B = 2+3+4 9B = 2+3+4 9B = 2+3+4 9B = 2+3+4 9 B = 2+3+4 9 B = 2+3+4 9 B = 2+3+4 9B = 2+3+4 9B = 2+3+4 9,所以 263541 的秘密差是 |12|12 -9|= 39|= 39|= 39|= 3 。
給定一個 十進位正整數 X,請找出 X的秘密差 秘密差 。
輸入 格式
輸入 為一行含 有一 個十進位表示法的 正整數 X,之後是一個換行字元 。
輸出 格式
請輸 出 X的秘密差 Y(以十進位表示法輸出 ),以換行字元結尾 。
範例一:輸入 範例一:輸入
26354 1
範例一:正確輸出 範例一:正確輸出
3
(說明) 263541 的 A = 6+5+1 12A = 6+5+1 12 A = 6+5+1 12 A = 6+5+1 12 A = 6+5+1 12 A = 6+5+1 12 ,B = 2+3+4 9B = 2+3+4 9 B = 2+3+4 9 B = 2+3+4 9B = 2+3+4 9 B = 2+3+4 9 B = 2+3+4 9 ,|A -B|= B|= B|= B|= |12|12 -9|= 39|= 39|= 39|= 3 。
範例二:輸入 範例二:輸入
131
範例二:正確輸出 範例二:正確輸出
1
(說明) 131 的 A = 1+1 2A = 1+1 2 A = 1+1 2 A = 1+1 2 A = 1+1 2 ,B = 3B = 3B = 3B = 3 ,|A -B|= B|= B|= B|= |2 -3|= 13|= 13|= 13|= 1 。
程式碼:
import math as lp
n=input()
n=int(n)
d=lp.floor(lp.log10(n))+1
x=[]
for i in range(d):
ls=n%10
x.append(ls)
n//=10
A=0 #奇數位數和
B=0 #偶數位數和
S=0 #奇數位的奇數位數和
if (d%2)==0:
for j in range(int(d/2)):
A+=x[2*j]
B+=x[2*j+1]
print(abs(A-B))
elif (d%2)==1:
for k in range(int((d-1)/2)):
A+=x[2*k]
S=A+x[d-1]
B+=x[2*k+1]
print(abs(S-B))
沒有留言:
張貼留言