//需求 //某系统的数字密码(大于0),比如1983,采用加密方式进行传输; //规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数; import java.util.Scanner; public class Main{ public static void main(String[] args) { //1.通过输入的密码,来确定存放密码的数组的长度 int k=0; Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int num=n; while(n>0) { n=n/10; k++; } //2定义数组,存数字 int[] arr=new int[k]; for(int i=k-1;i>=0;i--)//把数字存入到数组,因为是%10,所以要反过来存 { arr[i]=num%10; num=num/10; } //3.每一位加5 for (int i = 0; i < arr.length; i++) { arr[i]=arr[i]+5; } //4每一位%10 for (int i = 0; i < arr.length; i++) { arr[i]=arr[i]%10; } //5取反 for(int j=arr.length-1,i=0;i<j;i++,j--) { int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } //把单个的数组元素合在一起,变成密码 int number=0; for (int i = 0; i < arr.length; i++) { number=number*10+arr[i]; } System.out.println(number); } }标签:10,每位,数字,int,arr,++,求余 From: https://blog.csdn.net/2301_79017161/article/details/144634613