问题描述:对于一段数字我们要进行加密,加密要求如下
1.每位数字+5
2.对每位数字进行对10取余
3.将数字进行反转
举例 1983进行加密
1.每位数字+5 (6 14 13 8)
2.对每位数字进行对10取余 (6 4 3 8)
3.将数字进行反转 (8 3 4 6)
完整代码展示:
package com.text;
import java.util.Scanner;
public class text {
int count=0; //计数 记录加密数字有几位数
int number=0; //记录加密后的数字
public int jiami(int num){
int temp1=num;
while(num!=0){
num=num/10;
count++;
}
int[] arr=new int[count]; //开辟数组对num进行录入
for (int i = count-1; i >=0; i--) {
arr[i]=temp1%10; //从个位数开始录入到最后一个数组中
temp1=temp1/10;
}
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]+5;
arr[i]=arr[i]%10;
}
for (int i = 0, j=arr.length-1; i < j; i++,j--) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
for (int i = 0; i < arr.length; i++) {
number= number*10+arr[i];
}
return number;
}
public void jiemi(int number){
int temp1=number;
int[] arr=new int[count]; //开辟数组对number进行录入
for (int i = 0; i < arr.length; i++) {
arr[i]=temp1%10;
temp1=temp1/10;
}
for (int i = 0; i < arr.length; i++) {
if(arr[i]<5)
arr[i]+=10;
}
for (int i = 0; i < arr.length; i++){
arr[i]-=5;
}
System.out.print("解密后:");
for (int i = 0; i < arr.length; i++){
System.out.print(arr[i]);
}
}
public static void main(String[] args) {
text t=new text();
System.out.print("请输入要加加密的数:");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
System.out.println("加密后:"+t.jiami(num));
t.jiemi(t.number);
}
}
运行结果如下: