77 加密一个值 +5 取余数 倒序

优化后  获得一个加密后值
package com.fqs.test;

import java.util.Scanner;

public class hello {
    public static void main(String[] args) {
        //加密传输 1983
        //每位上加5 (1+5=6)%10取余   9+5=14  8+5=13 3+5=8
        //对10取余
        //颠倒顺序输出
        //求num的各个位数并输出
        int num=1983;
        int []arr2=getArr(num);
        int []arr3=getAdd(arr2);
        int []arr4=getYu(arr3);
        int[]arr5=getDao(arr4);
        int[]arr6=getDao(arr5);
        int numOk2=getNum(arr6);


            System.out.println("加密后的值:"+numOk2);


    }//主方法结束

    //获取每个位上的值放到数组中

    public static int[] getArr (int num) {
        int num2=num;

        int count=0;
        while(num!=0){
            int ge=num%10;
            num=num/10;
            count++;

        }

        int []arr=new int[count];
        int count2=0;
        while (num2!=0){
            int ge2=num2%10;
            arr[count2]=ge2;
            count2++;
            num2=num2/10;
        }
        return arr;

    }
    //给每个位上的值 加5
    public static int[] getAdd(int []arr2) {
        for (int i = 0; i < arr2.length ; i++) {
            arr2[i]=arr2[i]+5;
        }
        return arr2;

    }
    //给10取余数
    public static int[] getYu(int []arr3) {
        for (int i = 0; i < arr3.length; i++) {
            arr3[i]=arr3[i]%10;

        }
        return  arr3;

    }
    //倒序输出  气死了啊 解恨只能再倒序一次
    public static int[] getDao(int []arr4) {
        int temp=arr4[0];
        int len=arr4.length;
        for (int i = 0,j=len-1; i < len/2; i++,j--) {
            temp=arr4[i];
            arr4[i]=arr4[j];
            arr4[j]=temp;


        }
        return arr4;

    }
    //二次倒序
    public static int[] getDao2(int []arr5) {
        int temp=arr5[0];
        int len=arr5.length;
        for (int i = 0,j=len-1; i < len/2; i++,j--) {
            temp=arr5[i];
            arr5[i]=arr5[j];
            arr5[j]=temp;


        }
        return arr5;

    }
    //求反过来的值
    public static int getNum(int[]arr6) {
        int numOk=0;
        for (int i = 0; i < arr6.length; i++) {
             numOk=numOk*10+arr6[i];

        }
        return numOk;

    }



}//类结束

 




正确的是二次倒序
package com.fqs.test;

import java.util.Scanner;

public class hello {
    public static void main(String[] args) {
        //加密传输 1983
        //每位上加5 (1+5=6)%10取余   9+5=14  8+5=13 3+5=8
        //对10取余
        //颠倒顺序输出
        //求num的各个位数并输出
        int num=1983;
        int []arr2=getArr(num);
        int []arr3=getAdd(arr2);
        int []arr4=getYu(arr3);
        int[]arr5=getDao(arr4);
        int[]arr6=getDao(arr5);

        for (int i = 0; i < arr6.length; i++) {
            System.out.println("元素:"+arr6[i]);

        }
    }//主方法结束

    //获取每个位上的值放到数组中

    public static int[] getArr (int num) {
        int num2=num;

        int count=0;
        while(num!=0){
            int ge=num%10;
            num=num/10;
            count++;

        }

        int []arr=new int[count];
        int count2=0;
        while (num2!=0){
            int ge2=num2%10;
            arr[count2]=ge2;
            count2++;
            num2=num2/10;
        }
        return arr;

    }
    //给每个位上的值 加5
    public static int[] getAdd(int []arr2) {
        for (int i = 0; i < arr2.length ; i++) {
            arr2[i]=arr2[i]+5;
        }
        return arr2;

    }
    //给10取余数
    public static int[] getYu(int []arr3) {
        for (int i = 0; i < arr3.length; i++) {
            arr3[i]=arr3[i]%10;

        }
        return  arr3;

    }
    //倒序输出  气死了啊 解恨只能再倒序一次
    public static int[] getDao(int []arr4) {
        int temp=arr4[0];
        int len=arr4.length;
        for (int i = 0,j=len-1; i < len/2; i++,j--) {
            temp=arr4[i];
            arr4[i]=arr4[j];
            arr4[j]=temp;


        }
        return arr4;

    }
    //二次倒序
    public static int[] getDao2(int []arr5) {
        int temp=arr5[0];
        int len=arr5.length;
        for (int i = 0,j=len-1; i < len/2; i++,j--) {
            temp=arr5[i];
            arr5[i]=arr5[j];
            arr5[j]=temp;
            

        }
        return arr5;

    }



}//类结束

错误的   倒序需要2次




package
com.fqs.test; import java.util.Scanner; public class hello { public static void main(String[] args) { //加密传输 1983 //每位上加5 (1+5=6)%10取余 9+5=14 8+5=13 3+5=8 //对10取余 //颠倒顺序输出 //求num的各个位数并输出 int num=1983; int []arr2=getArr(num); int []arr3=getAdd(arr2); int []arr4=getYu(arr3); for (int i = 0; i < arr4.length; i++) { System.out.println("元素:"+arr4[i]); } int[]arr5=getDao(arr4); for (int i = 0; i < arr5.length; i++) { System.out.println("元素:"+arr5[i]); } }//主方法结束 //获取每个位上的值放到数组中 public static int[] getArr (int num) { int num2=num; int count=0; while(num!=0){ int ge=num%10; num=num/10; count++; } int []arr=new int[count]; int count2=0; while (num2!=0){ int ge2=num2%10; arr[count2]=ge2; count2++; num2=num2/10; } return arr; } //给每个位上的值 加5 public static int[] getAdd(int []arr2) { for (int i = 0; i < arr2.length ; i++) { arr2[i]=arr2[i]+5; } return arr2; } //给10取余数 public static int[] getYu(int []arr3) { for (int i = 0; i < arr3.length; i++) { arr3[i]=arr3[i]%10; } return arr3; } //倒序输出 public static int[] getDao(int []arr4) { int temp=arr4[0]; int len=arr4.length; for (int i = 0,j=len-1; i < len/2; i++,j--) { temp=arr4[i]; arr4[i]=arr4[j]; arr4[j]=temp; System.out.println("倒序后,第"+i+"位的值"+arr4[i]); } return arr4; } }//类结束

 

posted @ 2023-06-09 14:05  胖豆芽  阅读(13)  评论(0编辑  收藏  举报