Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Polybius Square Cipher ใน C ++


ในปัญหานี้ เราได้รับสตริงและเราต้องหาการเข้ารหัสจำนวนเต็มโดยใช้ Polybius Square Cipher .

Polybius Square Cipher

เป็นตารางที่ใช้แปลงตัวอักษรเป็นตัวเลข ตารางสำหรับการเข้ารหัสภาษาอังกฤษเป็นตารางขนาด 5X5 เช่น มี 25 เซลล์สำหรับตัวอักษร 26 ตัวในพจนานุกรมภาษาอังกฤษ ตัวอักษร i และ j ถูกเก็บไว้ในเซลล์เดียว

ตารางต่อไปนี้แสดง Polybius square Cipher


1 2 3 4 5
1 A B C D E
2 F G H ฉัน, J K
3 L M N O P
4 Q R S T U
5 V W X Y Z

จดหมายของตารางสามารถสุ่มได้ นอกจากนี้ ขนาดของตารางยังสามารถเปลี่ยนแปลงได้ตามจำนวนตัวอักษรของภาษา

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ป้อนข้อมูล − สวัสดี

ผลลัพธ์ − 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