Пожалуйста, срочно помогите решить задачи! Заранее спасибо)
Задача №1
Написать функцию
На входе функция получает два массива.
На выхода должен быть массив, произведений четных чисел из первого массива и нечетных чисел из второго массива.
Массивы могут иметь разную длинну.
Например:
[2, 5, 8, 9, 4 ,9, 8]
[1, 5, 8, 9, 11, 3, 0, 44, 5]
вычисление:
2*1, 8*5, 4*11, 8*3
ожидаемый результат:
[2, 40, 44, 24]
Задача №2
Написать функцию.
На входе функция получает массив и заданное число.
На выходе вывести количество подряд идущ два числа, которые в сумме равны заданному числу.
Пример:
[2,9,5,6,11,34,3,9,12], 11
вычисление:
2,9; 5,6; 3,9; = итого 3 пары
Ожидаемый результат:
3
Спасибо огромное, если вы написали этот код - то спасли меня
Python
Программирование на питоне
Ожидаемый результат в первой задаче не соответствует её условию: последние два произведения должны быть 4*9 и 8*11, соответственно.
Первый вариант решения:
И во второй задаче ошибка в тестовых данных: 3 + 9 не равно 11, поэтому там только две пары, а не три.
Первый вариант решения:
Первый вариант решения:
def crossmult(a, b):
return (x * y for x, y in zip((n for n in a if n % 2 == 0), (n for n in b if n % 2 != 0)))
Второй вариант решения: from math import prod; from itertools import filterfalse
def crossmult(a, b):
return map(prod, zip(filterfalse((2).__rmod__, a), filter((2).__rmod__, b)))
Код для тестирования: a, b = ([int(s) for s in input().split()] for _ in (0, 0))
print(*crossmult(a, b))
Входные данные (массивы из условия, по одному массиву на строке через пробел): 2 5 8 9 4 9 8
1 5 8 9 11 3 0 44 5
Выходные данные: 2 40 36 88
И во второй задаче ошибка в тестовых данных: 3 + 9 не равно 11, поэтому там только две пары, а не три.
Первый вариант решения:
from itertools import pairwise
def countpairs(ns, z):
return sum(1 for x, y in pairwise(ns) if x + y == z)
Второй вариант решения: from itertools import pairwise
def countpairs(ns, z):
return sum(map(z.__eq__, map(sum, pairwise(ns))))
Код для тестирования: ns = (int(s) for s in input().split())
z = int(input())
print(countpairs(ns, z))
Входные данные (массив и число из условия): 2 9 5 6 11 34 3 9 12
11
Выходные данные: 2
Похожие вопросы
- Программирование на питон
- Решение задачи по программированию (желательно питон) Сложность O(квадрат(n))
- Программирование на питоне
- Программирование в питоне помогите
- Программирование на питоне .Нужно решить долго мучаюсь на этой задаче
- Программирование на питоне
- Программирование на питоне
- Программирование на питон, нужно написать программу
- Программирование на Питоне
- Программирование на питон