কম্পিউটার

C++ এ পলিবিয়াস স্কয়ার সাইফার


এই সমস্যায়, আমাদের একটি স্ট্রিং দেওয়া হয়েছে এবং আমাদের পলিবিয়াস স্কয়ার সাইফার ব্যবহার করে এর পূর্ণসংখ্যা এনক্রিপশন খুঁজে বের করতে হবে। .

পলিবিয়াস স্কয়ার সাইফার

এটি একটি টেবিল যা অক্ষরকে সংখ্যায় রূপান্তরের জন্য ব্যবহৃত হয়। ইংরেজি এনক্রিপশনের জন্য টেবিলটি হল একটি 5X5 টেবিল অর্থাৎ একটি ইংরেজি অভিধানের 26টি বর্ণমালার জন্য 25টি কোষ রয়েছে। 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 প্রশ্ন 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

  1. C++ এ একটি বর্গক্ষেত্রের একটি পরিক্রমাকৃত বৃত্তের ক্ষেত্রফল

  2. C++ এ বর্গক্ষেত্রের জন্য প্রোগ্রাম

  3. Affine সাইফার বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. C++ এ NaN কি?