【問題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