我必须编写一个java应用程序,它从随机数生成器中读取0到0之间的数字,包括0和9。将数字(一次一个)传递给一个函数,该函数将使用下表中的相应数字替换每个数字。最后,写下新的加密号码。
Digit in Digit out
0 3
1 9
2 4
3 1
4 7
5 6
6 8
7 2
8 0
9 5
示例:如果输入的数字是:
1 2 3 4 5
输出将是:
9 4 1 7 6
到目前为止:
`
import java.io.*;
import java.util.Arrays;
public class JAVAhw10
{
public static void main(String[] args) {
int a, b, c, d, e;
a = (int)((Math.random()*100) % (9) + 0);
b = (int)((Math.random()*100) % (9) + 0);
c = (int)((Math.random()*100) % (9) + 0);
d = (int)((Math.random()*100) % (9) + 0);
e = (int)((Math.random()*100) % (9) + 0);
int DigitIn[] = new int[5];
int table[] = new int[10];
//filling in the arrays
DigitIn[0]=a;
DigitIn[1]=b;
DigitIn[2]=c;
DigitIn[3]=d;
DigitIn[4]=e;
System.out.println("This program ecnrypts 5 random numbers");
System.out.println(Arrays.toString(DigitIn));
func = encrypt(DigitIn, table);
System.out.println(func);
int[] table = {3,9,4,1,7,6,8,2,0,5};
}
public int encrypt(int){
return table[int];
}
}
`
答案 0 :(得分:0)
你有从0到9的键。使用长度为10的数组作为值。对于不太特殊的情况,您可以使用地图。
答案 1 :(得分:0)
用数组或哈希表表示您的表。如果Digit ins是密集的,则数组是可以的,否则使用哈希表(键是数字输入,值是相应的数字输出)。
一次发送一个号码,并从阵列或哈希表中获取相应的数字输出值。
结合数字输出并创建整个加密输出。
一个例子:
import java.util.*;
class JAVAhw10 {
private static final int[] table = {3,9,4,1,7,6,8,2,0,5};
public static void main(String[] args) {
int a, b, c, d, e;
a = (int)((Math.random()*100) % (9) + 0);
b = (int)((Math.random()*100) % (9) + 0);
c = (int)((Math.random()*100) % (9) + 0);
d = (int)((Math.random()*100) % (9) + 0);
e = (int)((Math.random()*100) % (9) + 0);
int DigitIn[] = new int[5];
int table[] = new int[10];
//filling in the arrays
DigitIn[0]=a;
DigitIn[1]=b;
DigitIn[2]=c;
DigitIn[3]=d;
DigitIn[4]=e;
System.out.println("This program ecnrypts 5 random numbers");
System.out.println(Arrays.toString(DigitIn));
int[] output = encrypt(DigitIn);
System.out.println(Arrays.toString(output));
}
public static int[] encrypt(int[] input){
int[] output = new int[input.length];
for (int i=0; i<input.length; i++){
output[i] = table[input[i]];
}
return output;
}
}