一、需求:
加密数字解密:先得到每位数字,然后每位数字都加上5,再对10求余,最后将所有数字反转,得到一串新数,按照这个加密规则进行解密。
二、解题步骤
1.引入Scanner库
代码如下:
import java.util.Scanner;
2.具体步骤:
代码如下:
//键盘录入需要解密的密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要解密的密码:");
int password = sc.nextInt();
//定义一个变量,存放原始的password,避免下面while循环后password=0,后续不能使用
int password1 = password;
//定义变量存放除的次数,除的次数=位数
int count = 0;
//建立循环/10,被除数=0时循环结束
while (password != 0){ //循环条件
password = password /10;
count++;
}
//获得每一位数放入数组--循环次数=位数=数组长度
int[] passwordarr = new int[count];
for (int i = 0; i < passwordarr.length; i++) {
passwordarr[i] = password1 % 10;
password1 = password1 / 10;
}
//循环遍历数组--解密每一位数
for (int i = 0; i < passwordarr.length; i++) {
if(passwordarr[i] >= 5 && passwordarr[i] <= 9){
passwordarr[i] = passwordarr[i];
}else if (passwordarr[i] >= 0 && passwordarr[i] <= 4){
passwordarr[i] = passwordarr[i] + 10;
}
}
//每位数都-5
for (int i = 0; i < passwordarr.length; i++) {
passwordarr[i] = passwordarr[i] - 5;
}
//把数组中的数进行拼接
int result = 0;
for (int i = 0; i < passwordarr.length; i++) {
result = result * 10 + passwordarr[i];
}
System.out.println(result);
}