デジタル暗号化PAT 1048(20分)(のpython 3)

この問題は、デジタル暗号化の方法を達成するために必要。最初は、固定された正整数Aで暗号化し、対応する位置の各々上の任意の正の整数B、および番号の操作下記Aにデジタル1ビット:奇数のビットの後、デジタル和モジュロ13の対応するビット- - 10 J、Q 11、K 12表すの代表の代表ここで使用される;結果が否定的である場合でもビットで、数Bマイナスの数で、次に10を追加します。最初のものを作るために少しをここに。
入力フォーマット:
入力シーケンスは、行Aに与えられ、B、せいぜい100は、正の整数でない、隙間によって分離されました。
出力フォーマット:
行で暗号化された出力の結果。
サンプル入力:
1,234,567,368,782,971
出力サンプル:
3695Q8118

コード

A,B=input().split()
max=max(len(A),len(B))
A=A.zfill(max)
B=B.zfill(max)
lA=list(A)
lA.reverse()
lB=list(B)
lB.reverse()
sum=[]
x=['J','Q','K']
min=min(len(lA),len(lB))
for i in range(min):
    if (i+1)%2==1:
        a=(int(lA[i])+int(lB[i]))%13
        if a>=10:
            a=x[a%10]
    else:
        a=int(lB[i])-int(lA[i])
        if a<0:
            a+=10
    sum.append(str(a))
sum.reverse()
print("".join(sum))
公開された23元の記事 ウォンの賞賛0 ビュー347

おすすめ

転載: blog.csdn.net/qq_46258819/article/details/104819279