解密數字編程
1. 數字加密解密
var a:array[0..9]of byte=(0,1,2,3,4,5,6,7,8,9); {定義原始數字}
b:array[0..9]of byte=(7,5,9,1,3,6,8,0,2,4);{定義密文數字}
c:array[1..100]of byte;{待處理數字}
n,m,i,j:longint;
begin
read(n,m);
for i:=1 to m do
read(c[i]);{讀入待處理數字}
if n=1 then{加密}
for i:=1 to m do
write(b[c[i]]);{原始數字是0,1,2,3,4,5,6,7,8,9所以不需尋找}
if n=2 then{解密}
for i:=1 to m do
for j:=0 to 9 do{尋找原始數字}
if c[i]=b[j] then
write(a[j],' ');
end.
純手打!
Free pascal 測試通過!
Running "d:\▒α│╠ ╣¿╩╦╞µ\fpc\bin\i386-win32\ys.exe 123"
1 6
1 9 9 7 7 1
Running "d:\▒α│╠ ╣¿╩╦╞µ\fpc\bin\i386-win32\ys.exe 123"
2 6
1 9 9 7 7 1
3 2 2 0 0 3
望樓主採納! 謝謝!
2. VB加密和解密數字
最簡單的就是移位法:就是將數字加上(或者減掉)某個定值;
比如:加密的時候加上5
那麼:
0 + 5 = 5 轉換成5
1 + 5 = 6 轉換成6
2 + 5 = 7 轉換成7
3 + 5 = 8 轉換成8
4 + 5 = 9 轉換成9
5 + 5 = 10 去掉十位 轉換成0
6 + 5 = 11 去掉十位 轉換成1
7 + 5 = 12 去掉十位 轉換成2
8 + 5 = 13 去掉十位 轉換成3
9 + 5 = 14 去掉十位 轉換成4
那麼解密的時候,就減掉5。
對於小於5的數字,要加上10以後再減5。
請看附件:
3. 任意輸入一個三位整數,將其加密後輸出密文,然後編寫解密程序輸出明文。方法是將該數每一位上的數字加9
#include<stdio.h>
intmain(){
intx,y,z;
scanf("%d",&x);
y=(x/100+9)%10*100+(x/10%10+9)%10*10+(x%10+9)%10;
printf("加密後的成績是%d
",y);
z=(y/100+1)%10*100+(y/10%10+1)%10*10+(y%10+1)%10;
printf("解密後的成績是%d
",z);
return0;
}