PAT 1048 數字加密 20

2021-07-25 06:22:04 字數 1103 閱讀 4200

本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算:對奇數字,對應位的數字相加後對13取餘——這裡用j代表10、q代表11、k代表12;對偶數字,用b的數字減去a的數字,若結果為負數,則再加10。這裡令個位為第1位。

輸入格式:

輸入在一行中依次給出a和b,均為不超過100位的正整數,其間以空格分隔。

輸出格式:

在一行中輸出加密後的結果。

輸入樣例:

1234567 368782971

輸出樣例:

3695q8118

#要考慮b的長度比a小時,剛開始只想到a的長度比b小就把長出來的部分原樣輸出了。。。

a,b=raw_input().strip().split()[:2]

lena=len(a)

lenb=len(b)

c=a=list(a)

b=list(b)

if lenafor i in range(lenb-lena):

a.insert(0,'0')

elif lena>lenb:

for i in range(lena-lenb):

b.insert(0,'0')

max = lena if lena>lenb else lenb

for i in range(1,max+1):

if i%2:

mode = (int(a[-i])+int(b[-i]))%13

if mode==10:

c.insert(0,'j')

elif mode==11:

c.insert(0,'q')

elif mode==12:

c.insert(0,'k')

else:

c.insert(0,mode)

else:

sub = int(b[-i])-int(a[-i])

if sub<0:

sub+=10

c.insert(0,sub)

print

''.join(map(str,c))

PAT1048 數字加密 20

本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對13取餘 這裡用j代表10 q代表11 k代表12 對偶數字,用b的數字減去a的數字,若結果為負數,則再加10。這裡令個位為第1位。輸入格式 輸入...

PAT 1048 數字加密 20

題目描述 本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對13取餘 這裡用j代表10 q代表11 k代表12 對偶數字,用b的數字減去a的數字,若結果為負數,則再加10。這裡令個位為第1位。輸入...

PAT 1048 數字加密 20

本題要求實現一種數字加密方法。首先固定乙個加密用正整數a,對任一正整數b,將其每1位數字與a的對應位置上的數字進行以下運算 對奇數字,對應位的數字相加後對13取餘 這裡用j代表10 q代表11 k代表12 對偶數字,用b的數字減去a的數字,若結果為負數,則再加10。這裡令個位為第1位。輸入格式 輸入...