В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения
Ответ:
Считаем числа из файла. Сначала найдём максимальное по модулю число, заканчивающееся
Приведём решение задачи на языке Python.
f = open('17.txt')
nums = [int(i) for i in f]
max_square_sum = count = 0
max_elem=-10001
for x in nums:
if abs(x) % 10 ==3:
max_elem=max(max_elem, x)
for i in range(len(nums) - 1):
check_suf = (abs(nums[i]) % 10 == 3 and abs(nums[i + 1]) %10 != 3) or (abs(nums[i]) %10 != 3 and abs(nums[i + 1]) % 10 == 3)
if check_suf and nums[i] ** 2 + nums[i + 1] ** 2 >= max_elem**2:
count += 1
max_square_sum = max(max_square_sum, nums[i] ** 2 + nums[i + 1] ** 2)
print(count, max_square_sum)
В результате работы данного алгоритма при вводе данных из файла ответ —
Ответ: 180 190360573.
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Евгения Петченко на языке Python.
f = [abs(int(i)) for i in open("17.txt")]
max_element = max(f, key=lambda x: x if x % 10 == 3 else -10_000) ** 2
result = []
for i in range(len(f) - 1):
c = 0
if f[i] % 10 == 3:
c += 1
if f[i + 1] % 10 == 3:
c += 1
if c == 1 and f[i]**2 + f[i + 1]**2 >= max_element:
result.append(f[i]**2 + f[i + 1]**2)
print(len(result), max(result))
Приведём решение Михаила Глинского на языке Python.
f=open('17.txt')
m=[int(x) for x in f]
m3=[x for x in m if abs(x%10)==3]
r=[]
for i in range(len(m)-1):
kk=0
if abs(m[i])%10==3:
kk+=1
if abs(m[i+1])%10==3:
kk+=1
if kk==1 and m[i]**2+m[i+1]**2>=(max(m3))**2:
r.append(m[i]**2+m[i+1]**2)
print(len(r),max(r))

