بکندباز

در رمز دیجیتال، رمزگذاری با جمع ساده اعداد در کلید و کاراکترهای مربوطه در ورودی رشته انجام می‌شود.

تابعی ایجاد کنید که دو آرگومان داشته باشد. یک عدد صحیح مثبت (key) و یک رشته (message). این تابع یک لیست کدگذاری شده از اعداد صحیح را به عنوان پیام برمی گرداند.

مراحل رمزگذاری

مثال:

message = "scout"
key = 1939

ابتدا حروف الفبا را با شروع از عدد 1، شماره گذاری کنید.

 a  b  c  d  e  f  g  h  i  j  k  l  m
 1  2  3  4  5  6  7  8  9  10 11 12 13
 n  o  p  q  r  s  t  u  v  w  x  y  z
 14 15 16 17 18 19 20 21 22 23 24 25 26

در مقابل هر کاراکتر message عدد مربوطه را بنویسید:

 s  c  o  u  t
19  3 15 21 20

به هر رقم به دست آمده ارقام متوالی را از key اضافه کنید:

   s  c  o  u  t
  19  3 15 21 20
 + 1  9  3  9  1
 ---------------
  20 12 18 30 21

نتیجه

digital_cipher(message, key) ➞ [20, 12, 18, 30, 21]

برای درک بهتر مثال زیر را ببینید:

message = "masterpiece"
key = 1939


   m  a  s  t  e  r  p  i  e  c  e
  13  1 19 20  5 18 16  9  5  3  5
+  1  9  3  9  1  9  3  9  1  9  3
  --------------------------------
  14 10 22 29  6 27 19 18  6  12 8

نتیجه:

digital_cipher(message, key) ➞ [14, 10, 22, 29, 6, 27, 19, 18, 6, 12, 8]

نمونه ورودی و خروجی

DigitalCipher("scout", 1939) ➞ [20, 12, 18, 30, 21]

DigitalCipher("mubashir", 1990) ➞ [14, 30, 11, 1, 20, 17, 18, 18]

DigitalCipher("edabit", 100) ➞ [6, 4, 1, 3, 9, 20]
EXPECT_EQ(DigitalCipher("scout", 1939), std::vector({20, 12, 18, 30, 21}));
EXPECT_EQ(DigitalCipher("mubashir", 1990), std::vector({14, 30, 11, 1, 20, 17, 18, 18}));
EXPECT_EQ(DigitalCipher("edabit", 100), std::vector({6, 4, 1, 3, 9, 20}));

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط