/* 思考题:加密。 数据时八位整数,先将数据倒序,然后将每位数字加上5,再用和 除以10的余数代替该数字 最后将第一位和最后一位数字交换 将上述步骤反向解析。 1.将数据倒序,获取输入位数 2.将数组倒序排列(第一个跟最后一个除外) 3.如果是大于5的话,就用5加上余数;小于5就用余数减 5 4.将数组倒序排序 5.将解密结果顺序输出 */ import java.util.Scanner; class LianXi{ public static void main(String [] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入小于八位的整数"); int number = sc.nextInt(); int[] arr = new int[8]; int index = 0; getJieMiNumber(number,arr,index); } public static void getJiaMiNumber(int number,int[] arr,int index ){ //将数据倒序 while(number > 0){ arr[index] = number % 10; number /=10; index++; } //将每位数字加五,除十,取余 for(int i=0;i<=index;i++){ arr[i]+=5; arr[i]%=10; } //将第一位跟最后一位数字交换 int temp = arr[0]; arr[0] = arr[index-1]; arr[index-1] = temp; //将加密结果输出 for(int x=0;x<index;x++){ System.out.print(arr[x]); } System.out.println(); } public static void getJieMiNumber(int number,int[] arr,int index){ //将数据倒序,获取输入位数 while(number > 0){ arr[index] = number % 10; number /=10; index++; } //将数组倒序排列(第一个跟最后一个除外) for(int i=1;i<index/2;i++){ int temp = arr[index-i-1]; arr[index-i-1] = arr[i]; arr[i] = temp; } //如果是大于5的话,余数减去5;小于5就用余数加上 5 for(int x=0;x<index;x++){ if(arr[x]> 5){ arr[x] = arr[x] - 5; }else if(arr[x] < 5){ arr[x] = arr[x] + 5; }else{ arr[x] = arr[x] ; } } //将数组倒序排序 for(int i=0;i<index/2;i++){ int temp = arr[index-i-1]; arr[index-i-1] = arr[i]; arr[i] = temp; } //将解密结果输出 for(int x=0;x<index;x++){ System.out.print(arr[x]); } System.out.println(); } } |
|