發布時間: July 10, 2022, 2:56 p.m. 最後更新時間: Sept. 14, 2023, 10:20 p.m. 時間限制: 1000ms 記憶體限制: 128M
看著家裡的兩隻貓慵懶地躺在地上,無聊的你心裡想著:「他們平常都在那邊互相喵來喵去的,一定是在密謀著什麼詭計!」
帶著吃飽太閒的氣勢,你開始分析起了那兩隻貓間的語言。
幸運的是,你成功破解了他們的幾個基本發音,並將其對應上人類的英文字母。而就在建立起這套拼音系統後,你驚訝地發現了貓咪之間竟然是用某種加密方式,將英語單字處理後再講出來。難怪人類聽不懂貓的語言!
為了要破解牠們的語言,首先要先將英文字母依序編號:A 為 01、B 為 02、C 為 03,以此類推,Z 為 26。
因此,我們就可以用字母編號來書寫單字。例如:love = 12152205。
然後我們將會有以下三個訊息:明文、鑰匙、密文。
我們將選擇一個單字作為我們的鑰匙,然後將其長度透過重複書寫或刪去多餘的字母以符合明文長度。例如:明文為 hellokitty,鑰匙為 cat,則我們需要將鑰匙延長為 catcatcatc;明文為 cat,鑰匙為 sleepy,則我們需要將鑰匙刪減為 sle。
有了等長的明文與鑰匙後,我們將兩者利用代號書寫並將其數字相加,即可得到密文。例如:明文為 hello(0805121215),鑰匙為 cat(030120)。延長鑰匙得到 catca(0301200301),再將明文的數字編號加上延長後的密文數字編號,即可得到密文 1106321516(0805121215 + 0301200301)。另外,要注意密文中的兩個字元為一單位。
今天你無意間得知你家裡的貓咪們是用「meow」當作牠們的鑰匙。請你寫出一個程式,將你從牠們口中偷聽來的訊息解密成人類聽得懂的文字。
連續輸入,以分行間隔。
每行有一串 0~9 的數字,代表密文。
每串密文長度不超過 18 個數字。
依序輸出解密後的明文。
全為小寫英文,以分行間隔。
1407182718 26103046
abcde meow