Вопрос задан 08.03.2021 в 03:41. Предмет Информатика. Спрашивает Буткус Алеша.

Написать на C++:даны два массива. Определить существуют ли в первом массиве такие два элемента, что

их сумма равна сумме каких-либо трёх элементов второго массива
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Страчёв Сергей.

#include <iostream>

#include <vector>


/*

Определить существуют ли в первом массиве такие два элемента,

что их сумма равна сумме каких-либо трёх элементов второго массива

*/

#define DEBUG // для себя.

int main()

{

   int

       size1,

       size2;

       

   std::cout << "Введите размер 1-го массива(вектора): " << std::endl;    

   std::cin >> size1;

   

   std::cout << "Введите размер 2-го массива(вектора): " << std::endl;    

   std::cin >> size2;

   

   int* arr1 = new int[size1];

   int* arr2 = new int[size2];

   

   for(int i = 0; i < size1; i++)//инициализируем значения первого массива с клавиатуры

       std::cin >> arr1[i];

   for(int i = 0; i < size2; i++)//инициализируем значения второго массива с клавиатуры

       std::cin >> arr2[i];

   

   int

       sum1(0),//сумма двух элементов 1го массива

       sum2(0);//сумма двух элементов 2-го массива

       

   for(int i = 0; i < size1; i++)

   {

       for(int j = 1; j < size2-1; j++)

       {

           if(i == j) continue;

           sum1 = arr1[i] + arr1[j];

           

           for(int ii = 0; ii < size2; ii++)

           {

               for(int jj = 0; jj < size2; jj++)

               {

                   for(int ff = 0; ff < size2; ff++)

                   {

                       if(ii == jj || jj == ff || ii == ff) continue;

                       sum2 = arr2[ii] + arr2[jj] + arr2[ff];

                   

                       if(sum1 == sum2)

                       {

                           std::cout << "Существует." << std::endl;

                           #if defined DEBUG

                               std::cout << arr1[i] << " " << arr1[j] << std::endl;

                               std::cout << arr2[ii] << " " << arr2[jj] << " " << arr2[ff] << std::endl;

                           #endif

                           delete[] arr1;

                           delete[] arr2;

                           

                           return 0;

                       }

                   }

               }

           }

       }

   }

   std::cout << "Не существует." << std::endl;

   

   delete[] arr1;

   delete[] arr2;

   

   return 0;

}


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример кода на C++, который решает вашу задачу:

cpp
#include <iostream> #include <unordered_set> bool checkArrays(int arr1[], int arr2[], int size1, int size2) { std::unordered_set<int> set2; // Заполняем хэш-таблицу значениями из второго массива for (int i = 0; i < size2; i++) { set2.insert(arr2[i]); } // Проверяем все возможные комбинации из первого массива for (int i = 0; i < size1 - 1; i++) { for (int j = i + 1; j < size1; j++) { int sum = arr1[i] + arr1[j]; // Проверяем, есть ли в хэш-таблице такая сумма if (set2.find(sum) != set2.end()) { return true; } } } return false; } int main() { const int size1 = 5; const int size2 = 7; int arr1[size1] = {1, 2, 3, 4, 5}; int arr2[size2] = {7, 8, 9, 10, 11, 12, 13}; bool result = checkArrays(arr1, arr2, size1, size2); if (result) { std::cout << "Существуют такие два элемента в первом массиве, " "что их сумма равна сумме каких-либо трёх элементов второго массива.\n"; } else { std::cout << "Таких двух элементов в первом массиве нет, " "чтобы их сумма была равна сумме каких-либо трёх элементов второго массива.\n"; } return 0; }

В этом примере мы используем хэш-таблицу (std::unordered_set) для хранения значений из второго массива. Затем мы перебираем все возможные комбинации пар элементов из первого массива и проверяем, есть ли их сумма в хэш-таблице. Если есть хотя бы одна сумма, то возвращаем true, иначе возвращаем false. В главной функции main приведен пример использования этой функции для заданных массивов arr1 и arr2.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос