【問題E14】:加解密處理            [回前頁]

假設有一種加解密的處理方式是將每一個英文字元看做數字,如下表:

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

空白

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

對明碼字母(M)加密成暗碼字母(C)的法則是先輸入一個整數K,1  K  26,然後將明碼字母用其後的第K個字母來取代,這可以用下列的公式來表示:

        C=(M+K)÷27的餘數

例如K=3時,明碼字母A(0)將轉換成D(3=0+3),明碼字母B(1)將轉換成E(4=1+3),…,明碼字母Z(25)將轉換成B((25+3)÷27的餘數為1)。若明碼為TAKE THAT HILL,則如下表所示,加密時轉換為暗碼WDNHCWKDWCKLOO。

明碼        T    A    K    E         T    H    A    T         H    I    L    L

對應數字    19   0    10   4    26   19   7    0    19   26   7    8   11    11

            ↓   ↓   ↓   ↓   ↓   ↓   ↓   ↓   ↓   ↓  ↓   ↓   ↓   ↓

移k位       22   3    13   7    2    22   10   3    10   2   10   11   14   14

暗碼        W    D    N    H    C    W    K    D    W    C    K    L   O    O

解密時,同樣先輸入整數K,然後將暗碼字母(C)用其前的第K個字母來取代,這同樣可以用下列的公式來表示:

      M=(C-K)÷27的餘數

請設計程式,當N=1時輸入整數K及明碼,並將明碼轉成暗碼後輸出;當N=2時,輸入整數K及暗碼,並將暗碼轉換成明碼後輸出。

 

[輸入]

N=1

K=3

  TAKE THAT HILL

 

[輸出]

WDNHCWKDWCKLOO