解密数字编程
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;
}