用 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 次浏览

启动你的 职业

完成该课程可获得认证

开始
广告