當前位置:成語大全網 - 新華字典 - ACM中的C語言題目:密碼替換

ACM中的C語言題目:密碼替換

“這道題目。。。首先我看不懂他要我幹什麽希望明白人給我講講。然後希望能給出程序甚至只是思路”

回答:他要妳破譯密碼啊,這個是典型的移位加密

加密方法是:密文字母=(明文字母+密鑰)%26

當然,密文字母和明文字母都是數字表示的。

我們可以假設:a對應數字1,b對應數字2,依次類推

相應我們有解密方法:明文字母=(密文字母-密鑰)%26

這樣的話,根據題意只要我們需要嘗試每壹個密鑰,才能破解密文

顯然密鑰只有0到25這26種可能。

根據題意,用蠻力法嘗試這26種可能,並且正確的密鑰會得到壹句“the quick brown fox jumps over the lazy dog?”的明文。

所以思路可以是:

對密文嘗試用密鑰去破解,得到相應的明文,如果明文中有句子“the quick brown fox jumps over the lazy dog?”則相應的密鑰就是真實的密鑰,否則嘗試下壹個密鑰。

“這個題目限定的內存只有1MB,時間1s,所以註意算法的高效性,謝謝各位高手”

關於效率,妳不需要擔心,題目的密鑰只要26種可能,用蠻力法破解也不用擔心超時的問題。