package _02_密码解密;

public class Test {
    public static void main(String[] args) {
        int encryPassword = 8346;
        // 1 先假面数字先转成数组
        int[] arr = inputNumberConvertArray(encryPassword);
        // 2 创建一个方法用于解密
        decryArray(arr);

        // 3 把解密数组转成数字
        int number = arrayConvertNumber(arr);
        System.out.println("解密以后数字为:"+ number);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] +" ");
        }
    }

    public static int arrayConvertNumber(int[] encryArr) {
        int number = 0;
        for (int i = 0; i < encryArr.length; i++) {
            number = number *10 + encryArr[i];
        }
        return number;
    }

    private static void decryArray(int[] arr) {
        // 将数组当中元素调转顺序
        for (int i = 0,j=arr.length-1; i < j; i++,j--) {
            // 调转i 和j 的位置
            int temp =  arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        // 反推到出10%    5-9 本身  0-4 本身+10
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] >=0 && arr[i]<=4){
                arr[i] = arr[i]+10;
            }
        }
        // 反推+5  -5
        for (int i = 0; i < arr.length; i++) {
            arr[i] = arr[i] - 5;
        }
    }

    public static int[] inputNumberConvertArray(int password) {
        //1 计算数组的长度
        //count 长度=0
        int count = 0;
        // 定义一个临时变量存储录入的数字 , 要不后面这个password的值一直在改变
        int temp = password;
        while (password !=0){
            // 让输入数字除等于10
            // 1983 / 10  198  count+=  198 /10 = 19  count+=
            password /= 10;
            // 每次让操作完让长度+1
            count++;
        }
        //2 动态初始化方式创建出来数组
        int[] arr = new int[count];
        //3 往数组当中添加元素
        // 定义数组中索引 0
        int index = arr.length - 1;
        //这里使用的是临时变量的值, 不能用password,password已经在上面修改成0了
        while (temp!=0){
            //求个位  1983 % 10
            int dig = temp % 10;
            //把元素添加到数组中
            arr[index] = dig;
            // 获取剩余数字
            temp /= 10;
            // 应该索引+1
            index--;
        }
        return arr;
    }
}
