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

Ответы 1

  • #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;

    }

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years