用 C++ 實現波利比奧方格密碼


在這個問題中,我們得到了一個字串,我們需要使用波利比奧方格密碼找到它的整數加密形式。

波利比奧方格密碼

這是一個用於將字母轉換為數字的表格。英語加密的表格是一個 5X5 表格,即包含 25 個單元格,對應於英語詞典中的 26 個字母。字母 i 和 j 被放在一個單元格中。

以下表格顯示了一個波利比奧方格密碼 -


12345
1ABCDE
2FGHI,JK
3LMNOP
4QRSTU
5VWXYZ

表格中的字母可以隨機排列。此外,表格的大小可以根據語言中字母的個數進行更改。

我們舉個例子來理解一下這個問題,

輸入- Hello

輸出- 2315313134

為了解決這個問題,我們將建立一個程式來獲取每對數字,然後檢查相應的字母。

示例

程式以展示我們解決方案的例證 -

 即時演示

#include <cmath>
#include <iostream>
using namespace std;
void LetterToNumber(string str) {
   int R, C;
   for (int i = 0; str[i]; i++) {
      R = ceil((str[i] - 'a') / 5) + 1;
      C = ((str[i] - 'a') % 5) + 1;
      if (str[i] == 'k') {
         R = R - 1;
         C = 5 - C + 1;
      }
      else if (str[i] >= 'j') {
         if (C == 1) {
            C = 6;
            R = R - 1;
         }
         C = C - 1;
      }
      cout<<R<<C;
   }
   cout << endl;
}
int main() {
   string str = "tutorialspoint";
   cout<<"The numeric encryption of string '"<<str<<"' is : ";
   LetterToNumber(str);
   return 0;
}

輸出

The numeric encryption of string 'tutorialspoint' is: 4445443442241131433534243344

更新於: 17-Apr-2020

797 次瀏覽

啟動你的 職業

完成該課程可獲得認證

開始
廣告
© . All rights reserved.