用 C++ 實現波利比奧方格密碼
在這個問題中,我們得到了一個字串,我們需要使用波利比奧方格密碼找到它的整數加密形式。
波利比奧方格密碼
這是一個用於將字母轉換為數字的表格。英語加密的表格是一個 5X5 表格,即包含 25 個單元格,對應於英語詞典中的 26 個字母。字母 i 和 j 被放在一個單元格中。
以下表格顯示了一個波利比奧方格密碼 -
| 1 | 2 | 3 | 4 | 5 | |
| 1 | A | B | C | D | E |
| 2 | F | G | H | I,J | K |
| 3 | L | M | N | O | P |
| 4 | Q | R | S | T | U |
| 5 | V | W | X | Y | Z |
表格中的字母可以隨機排列。此外,表格的大小可以根據語言中字母的個數進行更改。
我們舉個例子來理解一下這個問題,
輸入- 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Java 指令碼
PHP