🟩1.TwoSum
произвольное решение
Нам дан массив (nums) и число (target), нужно проверить есть ли в массиве два элемента которые при сложении будут давать в сумме это число. Вывести индексы этих элементов.
void TwoSum(int arr[], const int SIZE, int target)
{
bool solveFind = false;
cout << "Начинаем перебор массива: " << endl;
for (int i = 0; i < SIZE; i++)
{
if (solveFind == true) // если решение найдено, то заканчиваем перебор массива
{
break;
}
for (int x = i + 1; x < SIZE; x++) // перебираем массив i + (i + 1)
{
cout << arr[i] << " + " << arr[x] << " = " << arr[i] + arr[x] << endl;
if (arr[i] + arr[x] == target) // проверяем дают ли элементы при сложении сумму равной числу
{
cout << endl << "Решение найдено: " << arr[i] << " + " << arr[x] << " = " << arr[i] + arr[x] << endl;
cout << "[ " << i << ", " << x << " ]" << endl;
solveFind = true; // решение найдено
break;
}
}
}
if (solveFind == false)
{
cout << endl << "Решения нету :(" << endl;
}
}
int main()
{
int target; // число которое будем искать
cin >> target;
const int SIZE = 5;
int nums[SIZE]{ 1,2,3,4,5 }; // массив
TwoSum(nums, SIZE, target);
}
Last updated