0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 28
1

Как сделать так чтобы выводились только те элементы, которые встречаются только 2 раза?

11.12.2017, 14:20. Показов 1216. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать так чтобы выводились только те элементы, которые встречаются только 2 раза?


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Scanner scan = new Scanner(System.in); 
int [] arr = new int[14]; 
for (int i=0; i<14; i++) { 
arr[i] = (int)(Math.random()*10);} 
System.out.println(Arrays.toString(arr)); 
        int i,j;
        int numb = 0; // цифра в массиве
        int a; // количество одинаковых цифр(совпадения)
        int b = 0; // максимальное количество одинаковых цифр(совпадений)
        for (i = 0; i < arr.length; i++) { a = 1;    
            for (j = i+1; j < arr.length; j++) {  numb = arr[i]; 
                if (arr[i] == arr[j] && (j != i)) {   a++;  }           
            }                       
            if((b <= a) && (a!= 1)){                                                     
                b= a; 
                System.out.println("Число: " + numb + ", встречается: " + b+"  раза"); }  }
        if(b== 0){ System.out.println("Числа в массиве НЕ повторяются ");}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2017, 14:20
Ответы с готовыми решениями:

Как сделать так, чтобы в список Combobox выводились только рабочие ком порты
Собственно интересует такой вопрос, как сделать так, чтобы в список Combobox выводились только...

Массив: как сделать так, чтобы рандомно выбирались только те элементы массива, которые не были выбраны раньше?
В общем, из массива рандомно выбирается элемент, как сделать так, чтобы выбирались только те,...

как сравнить элементы двух массивов, но только так, чтобы первый сравнивался только с первым, второй только со вторым и т.д.?
Подскажите пожалуйста, как сравнить элементы двух массивов, но только так, чтобы первый сравнивался...

Выбрать из текста только те символы, которые встречаются в нем только два раза
1. Дана строка,содержащая текст на русском языке.Выбрать из него только те символы,которые...

9
14 / 14 / 9
Регистрация: 30.10.2014
Сообщений: 96
11.12.2017, 14:32 2
19651,
Java
1
2
3
4
5
  Character[] charArray = new Character[1000];
  IntStream.rand(0, charArray.length)
      .forEach(n -> charArray[n] = randomCharacter());
  Map<Character, Long> charCountMap = Arrays.stream(charArray)
      .collect(Collectors.groupingBy(Function.identity(), Collectors.counting());
и достать из charCountMap те которых конкретно два
0
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 28
11.12.2017, 14:49  [ТС] 3
Не получается((
0
14 / 14 / 9
Регистрация: 30.10.2014
Сообщений: 96
11.12.2017, 15:04 4
19651, что конкретно?
0
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 28
11.12.2017, 15:08  [ТС] 5
Я только начала изучать, такой метод сложноват для меня
0
Эксперт Java
3638 / 2970 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
11.12.2017, 15:11 6
Цитата Сообщение от wadzimka_ddr Посмотреть сообщение
Character[] charArray = new Character[1000];
* IntStream.rand(0, charArray.length)
* * * .forEach(n -> charArray[n] = randomCharacter());
а collect нельзя сделать?
0
14 / 14 / 9
Регистрация: 30.10.2014
Сообщений: 96
11.12.2017, 15:23 7
19651,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        String str = "1231235689";
        char[] chars = str.toCharArray();
        HashMap<Character, Integer> charMap = new HashMap<Character, Integer>();
        for( char c : chars )
        {
            if( charMap.containsKey( c ) ){
                charMap.put(c, charMap.get(c) + 1 );
            }else{
                charMap.put(c, 1);
            }
        }
        for( Map.Entry<Character, Integer> entry : charMap.entrySet() )
        {
            if (entry.getValue()==2) System.out.println( "Character '"+entry.getKey()+"' is repeated for '"+entry.getValue()+"' times." );
        }
0
0 / 0 / 0
Регистрация: 09.12.2017
Сообщений: 28
11.12.2017, 15:30  [ТС] 8
А не могли бы вы полностью отправить, пожалуйста?

Добавлено через 2 минуты
А все, спасибо большое
0
4 / 4 / 2
Регистрация: 23.12.2016
Сообщений: 124
11.12.2017, 20:04 9
Вот так. Только у меня почему то выводит сначала nul, а потом числа. Кому не сложно, исправте пожалуйста.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package prj;
 
import java.util.Arrays;
import java.util.Scanner;
import static jdk.nashorn.internal.objects.NativeRegExp.test;
 
public class Prj {
 
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] arr = new int[14];
        
        for (int i = 0; i < 14; i++) {
            arr[i] = (int) (Math.random() * 10);
        }
        
        System.out.println(Arrays.toString(arr));
        
        int [] repeat = new int[14];
        
        for (int i = 0; i < repeat.length; i++){
            repeat[i] = 0;
        }
        
        for (int i = 0; i < arr.length; i++){
            for(int j = 0; j < arr.length; j++){
                if(arr[i] == arr[j]){
                    repeat[i] += 1;
                }
            }
        }
        
        String a = null;
 
        
        for (int i = 0; i < repeat.length; i++){
            if(repeat[i] == 2){
                a += String.valueOf(arr[i]);
            }
        }
String result = new StringBuilder(a).reverse().toString();
result = result.replaceAll("(.)(?=.*\\1)", "");
result = new StringBuilder(result).reverse().toString();
System.out.println(result);
    }
}
0
2442 / 1898 / 475
Регистрация: 17.02.2014
Сообщений: 9,155
12.12.2017, 14:34 10
Лучший ответ Сообщение было отмечено 19651 как решение

Решение



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void main(String[] args) {
        int [] arr = new int[14];
        int findFreq = 2; // требуемая частота вхождения чисел в массив
        for (int i=0; i < arr.length; i++) {
            arr[i] = (int)(Math.random()*10);
        }
        System.out.println(Arrays.toString(arr));
        int [] frequency = new int[arr.length]; // частота каждого элемента
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                if (arr[i] == arr[j]) {
                    frequency[i]++;
                }
            }
        }
        int tmp;
        for (int f = 0; f < frequency.length; f++) {
            if (frequency[f] == findFreq) {
                tmp = arr[f];  // число с искомой частотой
                // ищем такое же, правее в массиве частот и значений, т.к. искомая частота > 1
                for (int i = f + 1; i < frequency.length; i++) {
                    if (frequency[i] == findFreq && arr[i] == tmp)
                        System.out.println(arr[i]);
                }
            }
        }
    }
Один из возможных вариантов работы программы
Bash
1
2
3
4
[0, 9, 3, 7, 7, 0, 0, 4, 9, 5, 4, 9, 0, 3]
3
7
4
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2017, 14:34
Помогаю со студенческими работами здесь

Изменить таблицу так, чтобы в строках остались элементы которые встречаются более 1 раза
Изменить таблицу &quot;a&quot; так, чтобы в строках остались элементы которые встречаются более 1 раза,...

как сделать чтобы один юзер мог нажать только допустим только 2 раза
Можно так сделать? Если так то как.

Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями
Условие: Даны натуральные числа m, n (m, n &lt;= 10) и целочисленную матрицу размера m x n. Изменить...

Изменить код так, чтобы в результате выполнения программы выводились цифры, которые чаще всего встречаются
Изменить код так, чтобы в результате выполнения программы выводились цифры, которые чаще всего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru