در رمز دیجیتال، رمزگذاری با جمع ساده اعداد در کلید و کاراکترهای مربوطه در ورودی رشته انجام میشود.
تابعی ایجاد کنید که دو آرگومان داشته باشد. یک عدد صحیح مثبت (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}));
نظرات