題目內容:
a國情報局抓獲敵國間諜一名,從間諜身上搜出了若干密電,在嚴刑逼供之下,間諜說出了密電加密方法:將明文電報(僅由大寫字母構成)中的所有字母均替換為字母表中向後看的第n個字母,如果超過z,則從a繼續數,這樣就得到了密文,比如attack,向後看第2個字母,就加密為cvvcfm。
可還沒等到間諜說出加密用的金鑰(數字n),就被臥底開槍打死,間諜臨死前在地板上畫了bye三個字母。
情報局長看著一條條密電發了愁,但機智的你已經發現,原來間諜在告訴我們,所有密電的明文都以bye結尾!
請編寫程式破譯這些密電吧!
輸入格式:
共一行字串,全部由大寫字母構成的密文。
輸出格式:
共一行字串,破譯後的明文。
輸入樣例1:
jntqzczf
輸出樣例1:
imspybye
時間限制:500ms記憶體限制:32000kb
程式1:
s=input()
a='abcdefghijklmnopqrstuvwxyz'
for n in range(26): #窮舉金鑰n
secret=a[n:]+a[:n] #金鑰n對應的密碼表
if a[secret.index(s[-1])]=='e':
for t in s: #破解得到明文
print(a[secret.index(t)],end='')
print()
break
程式2:
s=input()
a='abcdefghijklmnopqrstuvwxyz'
#直接求出金鑰n
n = a.index(s[-1])-a.index('e')
#解密計算明文
for t in s:
print(a[(a.index(t)-n) % 26],end='')
程式3:
m = input()
for i in range(1,26):
s =
for j in m:
newstr = ''.join(s)
if 'bye' in newstr:
print(newstr)
python 實戰41 破譯密碼
題目內容 a國情報局抓獲敵國間諜一名,從間諜身上搜出了若干密電,在嚴刑逼供之下,間諜說出了密電加密方法 將明文電報 僅由大寫字母構成 中的所有字母均替換為字母表中向後看的第n個字母,如果超過z,則從a繼續數,這樣就得到了密文,比如attack,向後看第2個字母,就加密為cvvcem。可還沒等到間諜說...
簡單密碼破譯
problem description 密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈.接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。假設淵子原來乙個bbs上的密碼為zvbo941987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzi1987,這個密...
3977 密碼破譯
快速判斷長度為 x 的串是不是迴圈節,只需要判斷 len x 的串是否為區間的border。雜湊處理。注意到如果 x 不是迴圈節,則它的因數都不會是迴圈節。所以可以列舉 x 的質因子,長度除以質因子之後判斷是不是,直到不是迴圈節為止,這樣就可以得知最短迴圈節的這個質因子的指數。using names...