В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения
Определите количество троек элементов в которых только одно число четырехзначное, и сумма элементов тройки меньше максимального элемента последовательности оканчивающегося
Ответ:
Приведём решение на языке Python.
count = 0
m = 100000000
f = open('17.txt')
l = [int(i) for i in f]
max_dvy = 0
for i in range(len(l)):
if abs(l[i]) % 100 == 15:
max_dvy = max(max_dvy, l[i])
for i in range(len(l) - 2):
c = 0
s = [l[i], l[i+1], l[i+2]]
for x in s:
if 999 < abs(x) < 10000:
c += 1
if c == 1 and sum(s) < max_dvy:
m = min(m, (l[i] + l[i+1] + l[i+2]))
count += 1
print(count, m)
В результате работы данного алгоритма при вводе данных из файла ответ: 2453 −176846.
Ответ: 2453 −176846.
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Бориса Савельева на языке Python.
f = open('17.txt')
a = [int(x) for x in f]
maxi15=-100000000000
for i in range (0,len(a)):
if abs(a[i])%100==15:
maxi15=max(maxi15,a[i])
k=0
mini=100000000000
for i in range (0,len(a)-2):
if (len(str(abs(a[i])))==4 and len(str(abs(a[i+1])))!=4 and len(str(abs(a[i+2])))!=4) or (len(str(abs(a[i])))!=4 and len(str(abs(a[i+1])))==4 and len(str(abs(a[i+2])))!=4) or (len(str(abs(a[i])))!=4 and len(str(abs(a[i+1])))!=4 and len(str(abs(a[i+2])))==4):
if (a[i]+a[i+1]+a[i+2]) < maxi15:
k+=1
mini=min(mini,a[i]+a[i+1]+a[i+2])
print(k,mini)

