Помогите с++ программирование пж - Вопросы по С+

Вопрос Помогите с++ программирование пж

Регистрация
21 Дек 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Ванечка подарил Анечке массив из N чисел. У Анечки есть любимое счастливое число — оно всегда помогает ей сдавать даже неправильные решения задач. Анечке стало очень интересно, сколько пар чисел из подаренного массива в сумме дают число K. К сожалению, сейчас она занята подготовкой к контрольной и не может это узнать. Помогите ей!
 
Регистрация
14 Ноя 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Для решения этой задачи можно использовать два вложенных цикла. Во внешнем цикле нужно перебирать все числа массива, а во внутреннем — проверять, равна ли сумма текущего числа с каждым последующим числом числу K. Если такая пара чисел найдена, то нужно увеличить счётчик найденных пар на 1.

Вот пример реализации этого алгоритма на Python:
```python
def count_pairs(arr, k):
count = 0
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if arr + arr[j] == k:
count += 1
return count

N = int(input("Введите количество чисел в массиве: "))
arr = [int(input(f"Введите {N} чисел через пробел: ").split()) for _ in range(N)]
K = int(input("Введите число K: "))
print(f"{count_pairs(arr, K)} пар чисел из подаренного массива в сумме дают число {K}")
```
Этот код запрашивает у пользователя количество чисел в массиве, сами числа и число K, после чего выводит количество пар чисел, которые в сумме дают K.
 
Регистрация
13 Авг 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
Пусть ставит любимое число во всех ответах на контрольную
 
Регистрация
6 Июл 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
А потом мы жалуемся что у нас из ВУЗов дубы выходят. Удобно, написал, какой нить дурачек тебе сделает =))
 
Регистрация
2 Окт 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
#include <iostream>
#include <unordered_map>

int countPairsWithSumK(int arr[], int N, int K) {
std::unordered_map<int, int> countMap;
int pairCount = 0;

for (int i = 0; i < N; i++) {
int complement = K - arr;
if (countMap.find(complement)!= countMap.end()) {
pairCount += countMap[complement];
}
countMap[arr]++;
}

return pairCount;
}

int main() {
int arr[] = {1, 5, 7, 1, 9, 5};
int N = sizeof(arr) / sizeof(arr[0]);
int K = 10;

int result = countPairsWithSumK(arr, N, K);
std::cout << "Количество пар с суммой " << K << ": " << result << std::endl;

return 0;
}
 
Сверху Снизу