翻訳前
翻訳後
1 abを入力するお
2 msgを入力します
3 wordを入力
4 lはabのながさだお
5
6 xを辞書にいたします
7 iのために 0からl-1 までまわします
8 abのもじの i番目の文字を索引Aとして結果をiにするお
9
10 bを0にします
11 bが0以上の時繰返します
12 bに1ついかします
13 aのために 0からl-1 までまわします
14 dを値のない文字列にします
15 cをmsgの一文字ずつに設定してまわします
16 abのなかにあるcの文字位置をaずらして、さらにbをかけたものをlで割った余りの数値をabの位置をしてその文字をdに追加します。
17 dの文字列の中にwordがあれば...
18 dを表示します
19 bを-1にします
20 13行目からのループを壊します
概略
1〜3 問題のデータを入力します
4 内部でよく使われるabの長さをデータ化しておきます
6〜8 abの文字の位置情報の検索を何度もするので辞書化して高速化を狙っています
10〜20 aはアルファベットのずらす数値 bはさらにその値にかけ合わせる数値でmsgの
各文字を変換した結果の中にwordの文字列があれば暗号解読終了です。(解読終了処理
は17〜20) bとaと各文字の変換のためにc 大きく3つのループがまわっています。
プログラム川柳
データ入れ ぐるぐるまわし 結果出す
コンテスト 頭まわって 結果出ず