2014-11-22 2 views
-5

Мне нужно написать приложение Java, которое считывает из генератора случайных чисел 5 чисел от 0 до 9 включительно. Пропускайте числа (по одному за раз) до функции, которая заменит каждый номер соответствующим номером в таблице ниже. Наконец, напишите новый зашифрованный номер.Как я могу заменить номер соответствующим номером в java

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]; 
    } 
} 

`

+1

вы хотите, чтобы закодировать для вас? –

+0

Прохладный. Но для этого вам нужно использовать IDE или текстовый редактор. Вставка задания здесь не приведет к появлению кода. –

+0

no Sarthak Я отправлю свой собственный код своей функцией или методом, который я ищу – user3857450

ответ

0
  1. представляет собой таблицу с массивом или хеш-таблицей. Если вставки Digit плотны, массив одобрен, в противном случае используйте хеш-таблицу (ключ - цифра, а значение - соответствующий Digit).

  2. Отправьте по одному номеру за раз и получите соответствующее значение Digit out из массива или хеш-таблицы.

  3. Объедините выходы Digit и создайте весь зашифрованный вывод.

Пример:

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; 
    } 
} 
+0

Проблема в том, что «цифра в» случайна, и я не могу записать 50 команд, чтобы проверить их, а затем выдавать соответствующий эквивалент. – user3857450

+0

Вот почему вы должны представлять таблицу как массив. Ключом массива является «цифра в», а соответствующее значение - зашифрованное значение («цифра»). –

+0

Я не знаю о hashtables, но я использую массивы. Можете ли вы рассказать мне, как проверить случайные числа и назначить им соответствующую цифру. – user3857450

0

У вас есть ключи от 0 до 9. У вас есть массив длиной 10 для значений. Для менее особых случаев вы можете использовать карты.