總網頁瀏覽量

2018年1月9日 星期二

2017.3月大學程式設計先修檢測 實作題 第一題(秘密差)

問題描述
將一個十進位正整數的奇和稱為 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))

沒有留言:

張貼留言