Максимальное произведение
В массиве, заполненном произвольными целыми числами, найдите два числа, произведение которых максимально. Вложенные циклы не используйте.
Входные данные
На вход программе сначала подается значение n≤50000
— количество элементов в массиве. В следующей строке входных данных расположены сами элементы массива — целые числа, по модулю не превосходящие 30000
.
Выходные данные
Выдайте два искомых числа в порядке неубывания.
Answers & Comments
Максимально произведение будет лишь у самого наибольшего числа в списки и другого числа на ступень ниже. Поэтому находим 2 наибольших числа в списке.
import random
n = int(input("n = "))
while (n > 50000):
n = int(input("n = "))
s = [random.randint(0,30000) for i in range(n)]
max_1 = s[0]
max_2 = s[0]
for i in s:
if i>max_1:
max_1 = i
for i in s:
if i>max_2 and i != max_1:
max_2 = i
print(max_2,max_1)