package practice;
import java.util.Scanner;
public class z6 {
public static void main(String[] args) {
//数字加密:数字大于0,
//每位数上加上5
//再对10求余
//最后将所有数字反转
//得到新数
//分析:例如19342
//每位数需单独操作,那就用数组存取每位数
//需要知道每位数的长度来创建数组 最后需要将数组中的数进行拼接,完成操作后进行输出
System.out.println("请输入你的初始化密码:");
Scanner s=new Scanner(System.in);
int mima=s.nextInt();
System.out.print("你的初始化秘密为:"+mima+" ");
//计算初始密码一共有多少位数,方便知道创建数组的长度,所以不知道范围用while循环
int count=0;
int MIMA=0;//定义变量表示加密后的密码
int temp=mima;//临时变量存初始密码方便后面操作
while(mima!=0){
mima=mima/10;
count++;
}
System.out.println("你的初始密码有"+count+"位数");
//用数组存初始密码的每一位数
int arr[]=new int[count];
for (int i =arr.length-1; i >= 0; i--) {
if(temp!=0){
int ge=temp%10;
temp=temp/10;
arr[i]=ge;
}else{
break;
}
}
/*for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}*/
//每位数上加上5
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]+5;
}
//再对10求余
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]%10;
}
//最后将所有数字反转
for (int i = 0,j = arr.length-1; i < j; i++,j--) {
int temps=arr[i];
arr[i]=arr[j];
arr[j]=temps;
}
/*for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}*/
for (int i = 0; i < arr.length; i++) {
MIMA=MIMA*10+arr[i];
//MIMA=MIMA+arr[i]*10^(arr.length-i-1);
}
System.out.println("你的初始密码加密后为;"+MIMA);
}
}
对z6数字解密
package practice;
import java.util.Scanner;
public class z7 {
public static void main(String[] args) {
//对zx6数字解密:
//分析;
//倒推,先反转,,最后减5
//输入要解密的数字
System.out.println("请输入你需要解密的数字:");
Scanner s=new Scanner(System.in);
int number=s.nextInt();
//计算需要解密的数有几位,方便创建数组
int count=0;
int temp=number;//临时变量存number的值,便后处理
int decode=0;//最后的结果
while(number!=0){
number=number/10;
count++;
}
//将每位数数字单独存在数组中
int[] arr=new int[count];
for (int i = arr.length-1; i >=0; i--) {
arr[i]=temp%10;
temp=temp/10;
}
//将数字进行反转
for (int i = 0,j=arr.length-1; i < j; i++,j--) {
int temps=arr[i];
arr[i]=arr[j];
arr[j]=temps;
}
/*for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}*/
//”对10求余数“:则[5-9]不变,【10-14】在原来的数加上10
//“每位数上加上5”:则最小值为5最大值为14,加密前就会在[5-14]之间求余数,【5-9】求余数还是为【5-9】,【10-14】求余数为【0-4】
for (int i = 0; i < arr.length; i++) {
if(arr[i]>=5&&arr[i]<=9){
}
else if(arr[i]>=0&&arr[i]<=4){
arr[i]=arr[i]+10;
}
}
//最后减去5
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]-5;
}
/*for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}*/
//将数字进行拼接
for (int i = 0; i < arr.length; i++) {
decode=decode*10+arr[i];
}
System.out.println("数字解密后的为:"+decode);
}
}