Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 12.01.2020
Сообщений: 22

Найти количество элементов в массиве, которые можно получить сложением любых 2-х других элементов массива

25.03.2021, 22:38. Показов 1145. Ответов 2

Студворк — интернет-сервис помощи студентам
Задача: вводится массив целых чисел. Найти количество элементов в массиве, которые можно получить сложением любых 2-х других элементов массива. Для массива { 1, 0, 2, 4, 3, 10, 8, 2, 3 } правильным ответом будет 6 (2[2] = 0[1] + 2[7], 4[3] = 2[2] + 2[7], 3[4] = 1[0] + 2[2], 10[5] = 2[2] + 8[6], 2[7] = 0[1] + 2[2], 3[8] = 1[0] + 2[2]).
Решила так: заполняем массив, складываем поочередно все числа в массиве друг с другом, проверяем чтобы число не складывалось с самим собой, записываем все суммы в новый массив. Далее берем первое число из первого массива и сравниваем со значениями во втором. Если нашли совпадение, то увеличиваем сумму на 1. И так поочередно со всеми числами исходного массива.
Проблема начинается где-то на этапе записи сумм в новый массив. Если ввести числа 3 1 2 8 то в массив должно записаться следующее:4 5 11 4 3 9 5 3 10 11 9 10, а записывается это 11 9 10 10 0 0 0 0 и тд. Следовательно и сравнение массивов неправильное. Сумма считается правильно я проверяла.
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
47
48
49
50
51
52
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner (System.in);
           int a, b, s=0, sum=0;
        System.out.println("Введите кол-во элементов:");
        int size = scanner.nextInt();
        int array[] = new int[size];
        int test = size * (size - 1);
        int arr2[] = new int[test];
        System.out.println("Заполните массив:");
 
        for (int i = 0; i <  size; i++) {
            array[i] = scanner.nextInt();
        }
 
        System.out.print ("Массив:");
        for (int i = 0; i < size; i++) {
            System.out.print (" " + array[i]);
        }
 
        System.out.println("");
        for(int j=0; j<size; j++) {
            a = array[j];
            for (int i = 0; i < test && i < array.length; i++) {
                if (j != i) {
                    s = a + array[i];
                    arr2[i] = s;
                }
            }
        }
 
        System.out.println("Тест ");
        for(int i=0; i<arr2.length; i++)
        {
           System.out.println(" " + arr2[i]);
        }
        
        for(int j=0; j<size; j++) {
            a = array[j];
            for (int i = 0; i < test && i < array.length; i++) {
                if (a == arr2[i]) {
                    sum++;
 
                }
            }
        }
 
        System.out.println ();
        System.out.print ("Кол-во элементов:"+sum);
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2021, 22:38
Ответы с готовыми решениями:

Найти количество элементов в массиве, которые можно получить сложением любых 2-х других элементов
Вводится массив целых чисел. Найти количество элементов в массиве, которые можно получить сложением любых 2-х других элементов массива. Для...

Найти количество элементов в массиве, которые можно получить сложением любых 2-х других элементов
Вводится массив целых чисел. Найти количество элементов в массиве, которые можно получить сложением любых 2-х других элементов массива. Для...

Можно ли получить из некоторых элементов массива сложением число n
Дан массив чисел Определить, можно ли получить сложением некоторых элементов массива данное число n Например: a=1 2 3 4 5 6 ...

2
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
25.03.2021, 23:14
Найди тему про отладку программ и прочитай, что там написано
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38197 / 21130 / 4309
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
26.03.2021, 09:24
Цитата Сообщение от maria484 Посмотреть сообщение
Решила так: заполняем массив, складываем поочередно все числа в массиве друг с другом, проверяем чтобы число не складывалось с самим собой, записываем все суммы в новый массив. Далее берем первое число из первого массива и сравниваем со значениями во втором. Если нашли совпадение, то увеличиваем сумму на 1. И так поочередно со всеми числами исходного массива.
- не могу это одобрить. Лучше, мне кажется, так:

1. Отсортировать исходный массив
2. Брать пары. Если сумма пары превышает мах или меньше min - пропуск. Иначе ищем сумму пары в отсортированном массиве двоичным поиском. Нашли - увеличиваем счетчик.


И памяти этот алгоритм потребляет меньше, и скорость у него будет значительно выше.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2021, 09:24
Помогаю со студенческими работами здесь

В данном линейном массиве действительных чисел найти количество элементов, которые меньше среднего арифметического всех элементов этого массива
помогите!!!!!!! В данном линейном массиве действительных чисел найти количество элементов, которые меньше среднего арифметического...

Найти в массиве X, содержащем K элементов, все отрицательные элементы,которые записать в массив Y. Количество элементов в сформированном массиве Y
нужна помощь по Ассемблеру, помогите написать программу &quot;Найти в массиве X, содержащем K элементов, все отрицательные элементы,которые...

Найти в массиве X, содержащем K элементов, все отрицательные элементы, которые записать в массив Y. Количество элементов в сформированном массиве Y
Найти в массиве X, содержащем K элементов, все отрицательные элементы, которые записать в массив Y. Количество элементов в сформированном...

Найти количество элементов первого массива, которые встречаются во втором массиве
Помогите написать программу пожалуйста!!!!!!! Составьте функцию, которая определяет для двух целочисленных одномерных массивов...

Найти количество элементов массива, которые при делении на 5 дают в остатке 1, и их местоположение в массиве
Дан массив размера 3 x 5 с элементами целого типа. Написать программу для вычисления количества элементов массива, которые при делении на 5...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru