Задание 17. Обработки числовой последовательности

23.11.2021

В задание №17  добавлен файл. Он содержит последовательность целых чисел, которую необходимо будет использовать для обработки массива. Также в задании есть пример решения для другой последовательности. В ответ потребуется записать пару чисел, требуемую по условиям задачи.

Задание 17 проверяет умение написать простую переборную программу, на языке программирования, содержащую циклы и ветвление. Это задание проверяет только технические программистские умения, так как сам алгоритм решения описан в постановке задачи.

В отличии от 2021 года, в 2022 году к заданию 17 будет прилагаться файл данных. Отдельной технической задачей является чтение этого файла. Ответ будет зависеть от исходных данных.

Решением будет являться алгоритм последовательного просмотра пар.

Вариант 1. В данных задачах под парой подразумевается два идущих подряд элемента последовательности.
ДЕМО-вариант

В файле 17-demo1.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от −10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности из пяти элементов: 6; 2; 9; –3; 6 — ответ: 4 11.

Решение:
Для выполнения этого задания необходимо:
  • Cкачать файл, создать папку и перенести его в эту папку;
  • Создать файл для программы и сохранить его тоже в эту папку;
  • Прочитать внимательно задание.
Описание программы:
Python может с относительной легкостью обрабатывать различные форматы файлов:
f = open('17-demo1.txt')
a = [int(i) for i in f]
f.close()
k = 0
mx = -10000
for i in range(len(a)-1):
    if abs(a[i]) % 3 == 0 or abs(a[i+1]) % 3 == 0:
    k+=1
    mx=max(mx,a[i]+a[i+1])
print(k,mx)
Ответ: 2802 1990
(№ 4352) (П. Волгин) В файле 17-P.txt содержится последовательность целых чисел. Элементы последовательности могут принимать значения от –100 до 100 включительно. Определите сначала количество пар элементов последовательности, в которых хотя бы одно число оканчивается на 7, а затем максимальную из сумм элементов таких пар. Под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности из 5 элементов: 7, 27, 17, 5, 57 ответ должен быть 4 62.
Ответ: 16 159
Проверим задачу в Excel
Импортируем данные в таблицу из текстового файла. Самый простой способ: открыть текстовый файл ➦ Ctrl+A ➦ Ctrl+C ➦ переходим в таблицу ➦ выделить  ячейку А1 ➦ Ctrl+V. Вот такую вложенную друг в друга формулу вставляем в ячейку В2: =ЕСЛИ(ИЛИ(ОСТАТ(ABS(A1);10)=7;ОСТАТ(ABS(A2);10)=7);A1+A2;» «)
Ответ: 16 и 159
(№ 4707) (А. Кабанов) В файле 17-257.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые положительные значения до 10 000 включительно. Программа должна найти и вывести количество и наименьшую сумму пар элементов последовательности с чётной суммой, большей чем сумма максимального и минимального нечётного числа. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
f = open('17-257.txt')
a = [int(i) for i in f]
f.close()
k = 0
mn = 2000000
for i in a:
    if i % 2 != 0:
        s = max(a)+ min(a)
for i in range(len(a)-1):
    if (a[i]+a[i+1]) % 2==0 and a[i]+a[i+1] > s:
        k+=1
        mn = min(mn, a[i]+a[i+1])
print(k, mn)
Ответ: 250 10094
(№ 4722) В файле 17-243.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 10 000 включительно. Определите количество пар чисел, в которых ровно один из двух элементов больше, чем сумма цифр всех чисел в файле, делящихся на 35, а шестнадцатеричная запись другого оканчивается на EF. В ответе запишите два числа: сначала количество найденных пар, а затем – минимальную сумму элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
f = open('17-243.txt')
a = [int(i) for i in f]
f.close()
s = 0
k = 0
mn = 2000000
for i in a:
    if i % 35 ==0:
        while i !=0:
            s+=i%10
            i = i//10
for i in range(len(a)-1):
    if (a[i]>s and a[i+1]<=s and a&#91;i+1&#93;//16%16==14 and a&#91;i+1&#93;%16==15) or (a&#91;i&#93;<=s and a&#91;i&#93;//16%16==14 and a&#91;i&#93;%16==15 and a&#91;i+1&#93;>s)):
        k+=1
        mn = min(mn, a[i]+a[i+1])
print(k, mn)
Ответ: 15 6410
Вариант 2. В данных задачах под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.
В файле 17-20.txt содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответ сначала количество пар элементов последовательности, у которых сумма элементов кратна 117, затем максимальную из сумм элементов таких пар. В данной задачи под парой подразумевают два различных элемента последовательности. Порядок элементов не важен.
f = open('17-20.txt')
a = [int(i) for i in f]
f.close()
k = 0
mx = 0
for i in range(len(a)-1):
    for j in range(i+1,len(a)):
        if (a[i] + a[j]) % 117 == 0:
            k+=1
            mx=max(mx,a[i]+a[j])
print(k, mx)
Ответ: 427120 и 19890
Вариант 3. В данных задачах считаем тройки элементов идущих подряд выполняя условие
(П. Финкель) В файле 17-P2.txt содержится последовательность целых чисел, которые принимают значения от -10000 до 10000 включительно. Тройка идущих подряд чисел последовательности называется уникальной, если только второе из них является положительным числом, заканчивающимся на 9. Определите количество уникальных троек чисел, а затем – максимальную из всех сумм таких троек.
Файл 17tr.txt содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём тройкой три идущих подряд элемента последовательности. Определите количество троек чисел таких, которые могут являться сторонами остроугольного треугольника. В ответе запишите два числа: сначала количество найденных троек, а затем — максимальную сумму элементов таких троек. Если таких троек не найдётся — следует вывести 0 0.