用 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
广告