This media is not supported in your browser
VIEW IN TELEGRAM
Интересная и объемная задача 17 номера с сайта Решу ЕГЭ:
M = [int(x) for x in open('17.txt')]
A = [x for x in M if str(x)[-2:] == '19']
count = 0
maxi = 0
for i in range(0, len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if sum([len(str(abs(j))) == 4 for j in [x, y, z]]) == 2:
if sum([abs(j) % 3 == 0 for j in [x, y, z]]) >= 1:
if sum([x, y, z]) > max(A):
count += 1
maxi = max(maxi, x + y + z)
print(count, maxi)
Please open Telegram to view this post
VIEW IN TELEGRAM
#kege #yandex
#reshu #statgrad
#polyakov
#ЕГЭ1 #ЕГЭ10 #ЕГЭ19
#ЕГЭ2 #ЕГЭ11 #ЕГЭ20
#ЕГЭ3 #ЕГЭ12 #ЕГЭ21
#ЕГЭ4 #ЕГЭ13 #ЕГЭ22
#ЕГЭ5 #ЕГЭ14 #ЕГЭ23
#ЕГЭ6 #ЕГЭ15 #ЕГЭ24
#ЕГЭ7 #ЕГЭ16 #ЕГЭ25
#ЕГЭ8 #ЕГЭ17 #ЕГЭ26
#ЕГЭ9 #ЕГЭ18 #ЕГЭ27
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Давайте повторим решение 17 номера на этом интересном примере с сайта kompege.ru.
M = [int(x) for x in open('17.txt')]
avg = sum(M) / len(M)
R = []
for i in range(len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if x < avg or y < avg or z < avg:
if all('9' in str(a) for a in [x, y, z]):
R.append(x + y + z)
print(len(R), max(R))
Файлы к заданию: 17.txt
Please open Telegram to view this post
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []
for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))
print(len(result), max(result))
# Ответ: 260 106865
numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.
filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.
result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.
for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.
# x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].
if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.
if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.
result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.
print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: ЕГКР 27.04
Уровень: Базовый
Определите количество пар элементов последовательности, в которых только один из двух элементов оканчивается на 21 и является пятизначным числом, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 21 и являющегося пятизначным числом.
Аудио с пояснением к коду решения оставлю в комментариях.
M = [int(x) for x in open('17.txt')]
D = [int(x) for x in M if str(x)[-2:] == '21' and len(str(abs(x)))==5 ]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if (x in D and y not in D) or (y in D and x not in D):
if (x**2)+(y**2) >= max(D)**2:
R.append(x + y)
print(len(R), max(R))
# Ответ: 6283 9627
M = [int(x) for x in open('17.txt')]
Создание списка M, содержащего целочисленные значения, полученные из файла '17.txt'.
D = [int(x) for x in M if str(x)[-2:] == '21' and len(str(abs(x)))==5]
Фильтрация списка M, чтобы получить только элементы, оканчивающиеся на '21' и имеющие длину равную 5 символам.
R = []
Инициализация пустого списка R для хранения результатов.
for i in range(len(M)-1):
Цикл for, который проходит по индексам элементов списка M за исключением последнего.
5⃣ x, y = M[i], M[i+1]
Присваивание переменным x и y значений пар элементов списка M.
if (x in D and y not in D) or (y in D and x not in D):
Проверка условия: если один элемент из пары содержится в списке D, а другой нет, или наоборот.
if (x**2)+(y**2) >= max(D)**2:
Проверка условия: если квадрат суммы элементов пары больше или равен квадрату максимального значения из списка D.
R.append(x + y)
Добавление суммы элементов пары x и y в список R.
print(len(R), max(R))
Вывод количества элементов в списке R и максимального значения из списка R.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
M = [int(x) for x in open('17.txt')]
Три основных типа задач 17 номера:
M = [1, 2, 3, 4, 5]
for i in range(len(M)-1):
x, y = M[i:i+2]
print(f'{x}{y}', end=' ')
# Вывод:
# 12 23 34 45
M = [1, 2, 3, 4, 5]
for i in range(len(M)-2):
x, y, z = M[i:i+3]
print(f'{x}{y}{z}', end=' ')
# Вывод:
# 123 234 345
M = [1, 2, 3, 4, 5]
for i in range(0, len(M)):
for j in range(i+1, len(M)):
x, y = M[i], M[j]
print(f'{x}{y}', end=' ')
print()
# Вывод:
# 12 13 14 15
# 23 24 25
# 34 35
# 45
Информатика ЕГЭ | itpy
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
M = [int(x) for x in open('17.txt')]
D = [x for x in M if x % 32 == 0]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if x < 0 or y < 0:
if (x + y) < len(D):
R.append(x + y)
print(len(R), max(R))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
M = [int(x) for x in open('17.txt')]
D = [x for x in M if x > 0]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if x < 0 or y < 0:
if x + y % min(D) == 0:
R.append(x + y)
print(len(R), max(R))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Уровень: Средний
Определите количество троек элементов последовательности, в которых не более одного из трёх элементов являются одновременно четырёхзначными и чётными числами. А сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 3 в девятеричной системе счисления.
В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек.
В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Файл доступен в комментариях👇
В данной задаче полезно заметить, что найти число оканчивающееся на 3 в девятеричной системе счисления можно банальным делением, так как последняя цифра троичной записи будет являться первым остатком: x % 9 == 3.
Дополнительный вариант решения тоже оставлю в комментариях.
M = [int(x) for x in open('17.txt')]
A = [x for x in M if len(str(abs(x))) == 4 and abs(x) % 2 == 0]
B = max([x for x in M if x % 9 == 3])
R = []
for i in range(len(M) - 2):
x, y, z = M[i], M[i + 1], M[i + 2]
if (x in A) + (y in A) + (z in A) <= 1:
if (x + y + z) <= B:
R.append(x + y + z)
print(len(R), max(R))
# Ответ: 6281 99699
M = [int(x) for x in open('17.txt')]
Читаем данные из файла '17.txt', преобразуем каждую строку в целое число и создаем список M.
A = [x for x in M if len(str(abs(x))) == 4 and abs(x) % 2 == 0]
Создаем список A из чисел из M, которые имеют ровно 4 цифры и являются четными.
B = max([x for x in M if x % 9 == 3])
Находим максимальное значение среди чисел из M, которые при делении на 9 дают остаток 3, и сохраняем его в B.
R = []
Инициализируем пустой список R для хранения результатов сумм, удовлетворяющих условиям.
for i in range(len(M) - 2):
Проходим по списку M, используя индексы от 0 до (длина M - 3), чтобы избежать выхода за пределы при обращении к элементам M[i+2].
x, y, z = M[i], M[i + 1], M[i + 2]
Выбираем три последовательных элемента списка M.
if (x in A) + (y in A) + (z in A) <= 1:
Проверяем условие, что среди трех выбранных чисел не более одного числа принадлежит списку A.
if (x + y + z) <= B:
Проверяем условие, что сумма трех выбранных чисел меньше или равна значению B.
R.append(x + y + z)
Если оба условия выполняются, добавляем сумму (x+y+z) в список R.
print(len(R), max(R))
Выводим количество элементов в списке R и максимальное значение в списке R.
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
2 6 4 3
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: (Д. Бахтиев)
Уровень: Средний
Определите количество троек последовательности, сумма цифр элементов которых равна минимальному положительному элементу последовательности, оканчивающемуся на 4. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек.
В этой задачи я слеиваю все числа тройки в одну общую строчку и изящно избавляюсь от знака "минус".
M = [int(x) for x in open('files/17.txt')]
D = [x for x in M if x > 0 and x % 10 == 4]
R = []
for i in range(len(M)-2):
# x, y, z = M[i], M[i+1], M[i+2]
x, y, z = M[i:i+3]
S = ''.join([str(p) for p in (x, y, z)])
summa = sum(int(x) for x in S if x.isdigit())
if summa == min(D):
R.append(x + y + z)
print(len(R), max(R))
# Ответ: 11 180738
M = [int(x) for x in open('files/17.txt')]
Читаем файл '17.txt', преобразуем каждую строку в целое число и сохраняем в список M.
D = [x for x in M if x > 0 and x % 10 == 4]
Создаем список D, содержащий только положительные числа из M, оканчивающиеся на 4.
R = []
Инициализируем пустой список R, который будет хранить результаты.
for i in range(len(M)-2):
Запускаем цикл по индексу i от 0 до длины списка M минус 2, чтобы иметь возможность брать группы из трех чисел.
x, y, z = M[i:i+3]
Объявляем переменные x, y, z как три последовательных элемента списка M, начиная с индекса i.
S = ''.join([str(p) for p in (x, y, z)])
Конвертируем x, y, z в строки и объединяем их в одну строку S.
summa = sum(int(x) for x in S if x.isdigit())
Вычисляем сумму всех цифр в строке S и сохраняем её в переменной summa.
if summa == min(D):
Проверяем, равна ли сумма summa минимальному значению в списке D.
R.append(x + y + z)
Если условие выполняется, добавляем сумму x, y и z в список R.
print(len(R), max(R))
Выводим количество найденных сумм в R и максимальное значение из R.
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10 5❤🔥3
Автор: Яндекс Учебник
Уровень: Средний
Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.
В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.
Интересный пример, так как нам приходится рассматривать не только пару/тройку символов, как в основных задачах, но сразу 6-ку символов!
M = [int(s) for s in open('files/17.txt')]
R = []
for i in range(len(M)-5):
x, y, z, w, r, t = M[i:i+6]
if (z + w) > (x + y) and (z + w) > (r + t):
if z + w > 0 and x + y > 0 and r + t > 0:
R.append(z * w)
print(len(R), min(R))
# Ответ: 610 -123157359
M = [int(s) for s in open('files/17.txt')]
- Открывает файл 'files/17.txt', читает его и преобразует каждую строку в целое число, создавая список M.
R = []
- Создает пустой список R для хранения результатов, которые удовлетворяют условиям.
for i in range(len(M)-5):
- Запускает цикл по элементам списка M, при этом гарантируется, что для каждой итерации хватит шести элементов.
x, y, z, w, r, t = M[i:i+6]
- Извлекает шесть подряд идущих элементов из списка M, начиная с позиции i, и присваивает их переменным x, y, z, w, r и t.
if (z + w) > (x + y) and (z + w) > (r + t):
- Проверяет, что сумма z и w больше суммы x и y, а также больше суммы r и t.
if z + w > 0 and x + y > 0 and r + t > 0:
- Дополнительно проверяет, что каждая из сумм z + w, x + y и r + t больше нуля.
R.append(z * w)
- Если условия выполнены, добавляет произведение z и w в список R.
print(len(R), min(R))
- Выводит количество элементов в списке R и минимальное значение из этого списка.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8👍5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Статград
Уровень: Сложный
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []
for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))
print(len(result), max(result))
# Ответ: 260 106865
numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.
filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.
result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.
for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.
# x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.
length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].
if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.
if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.
result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.
print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥7 4❤🔥3
Автор: (Л. Шастин)
Уровень: Средний
Определите количество пар элементов последовательности, сумма номеров которых оканчивается на ту же цифру, что и максимальный элемент последовательности.
В ответе запишите количество найденных пар, затем минимальное значение среди модулей разностей суммы элементов и суммы номеров таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Мне эта задача очень понравилась, так как присутствует условие про номера элементов последовательности. Реализовать это не сложно, как оказалось, зато какая красота получилась! Обратите внимание, что происходит смещение по индексу на +1 элемент*
R = []
M = [int(x) for x in open('17.txt')]
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))
# Ответ: 1000 811
R = []
Инициализация пустого списка R, который будет хранить результаты.
M = int(x) for x in open('0. files/17.txt')
Открытие файла '0. files/17.txt', чтение каждой строки, преобразование их в целые числа и сбор этих чисел в список M.
for i in range(len(M)-1):
Начало цикла по всем элементам списка M, кроме последнего, с индексами от 0 до (длина M - 2).
x, y = Mi, Mi+1
Присваивание текущего элемента M и следующего элемента M соседним переменным x и y соответственно.
i, j = i+1, i+2
Расчет значений индексов i и j для проверки условия следующей строки.
if (i + j) % 10 == max(M) % 10:
Условие: если сумма индексов i и j даёт остаток от деления на 10, равный остатку от деления максимального элемента M на 10, выполнить следующий блок.
R.append(abs((x+y) - (i+j)))
Если условие выполнено, вычислить разность между суммой элементов x и y и суммой индексов i и j, взять модуль этой разности и добавить в список R.
print(len(R), min(R))
Вывод на экран количества элементов в списке R и минимального значения в этом списке R.
Наша Stepik подборкой задач
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
12249
#kege по информатике #ЕГЭ17Автор: ЕГКР 16.12.23
Уровень: Базовый
Определите количество троек элементов последовательности, в которых хотя бы один из трёх элементов оканчивается на 3, а сумма элементов тройки не больше максимального элемента последовательности, являющегося пятизначным числом, которое оканчивается на 3.
В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
В данной задаче очень удобно собрать отдельный список для элементов оканчивающихся на 3 (список А) и потом пробежать все лежащие в нем элементы, чтоб добавить условие с пятизначными символам (список D).
D = [int(x) for x in open('0. files/17.txt')]
R = []
A = [x for x in D if abs(x) % 10 == 3]
B = [x for x in A if len(str(abs(x))) == 5]
for i in range(len(D) - 2):
x, y, z = D[i], D[i + 1], D[i + 2]
if ((x in A) + (y in A) + (z in A)) >= 1:
if (x + y + z) <= max(B):
R.append(x + y + z)
print(len(R), max(R))
# Ответ: 1767 99081
D = int(x) for x in open('0. files/17.txt')
- Создаем список D, содержащий целые числа из файла '17.txt'.
R = [ ]
- Инициализируем пустой список R для хранения результатов.
A = x for x in D if abs(x) % 10 == 3
- Создаем список A, содержащий все числа из D, заканчивающиеся на 3.
B = x for x in A if len(str(abs(x))) == 5
- Создаем список B, содержащий только те числа из A, которые являются пятиместными.
for i in range(len(D) - 2):
- Начинаем цикл для перебора элементов списка D с индексом i от 0 до len(D) - 3.
x, y, z = Di, Di + 1, Di + 2
- Присваиваем переменным x, y, z текущие и следующие два элемента из D.
if ((x in A) + (y in A) + (z in A)) >= 1:
- Проверяем, содержится ли хотя бы одно из значений x, y, или z в списке A.
if (x + y + z) <= max(B):
- Проверяем, меньше ли сумма x, y и z, чем максимальный элемент в B.
R.append(x + y + z)
- Если обе проверки прошли, добавляем сумму x, y и z в список R.
print(len(R), max(R))
- Выводим количество элементов в списке R и максимальное значение из этого списка.
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
2 9❤🔥4🔥4
В файле 17.txt содержится последовательность целых чисел от -100 000 до 100 000 включительно. Определите количество пар элементов последовательности, в которых только один элемент является двузначным, а сумма элементов больше максимального элемента последовательности, оканчивающегося на 19. В ответе запишите без пробела кол-во найденных пар чисел, затем максимальную из их сумм. Под парой подразумевается два идущих подряд элемента последовательности.
f = open('17.txt').readline()
M = [int(i) for i in f]
max_19 = max(i for i in M if abs(i) % 100 == 19)
A = []
for i in range(len(M) - 1):
if (len(str(abs(M[i]))) == 2) + (len(str(abs(M[i+1]))) == 2) == 1:
if M[i] + M[i+1] > max_19:
A.append(M[i] + M[i+1])
print(len(A), max(A))
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥3🔥3👍1
Автор: Л.Шастин
Уровень: Средний
В файле содержится последовательность натуральных чисел, которые нумеруются, начиная с единицы. Определите количество пар элементов последовательности, сумма номеров которых оканчивается на ту же цифру, что и максимальный элемент последовательности. В ответе запишите количество найденных пар, затем минимальное значение среди модулей разностей суммы элементов и суммы номеров таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
M = [int(x) for x in open('0. files/17.txt')]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))
Ответ: 1000 811
M = [int(x) for x in open('0. files/17.txt')]
Читаем файл '0. files/17.txt', преобразуем каждую строку в целое число и сохраняем в список M
R = []
Создаем пустой список R для хранения результатов
for i in range(len(M)-1):
Запускаем цикл по индексам элементов списка M, кроме последнего
x, y = M[i], M[i+1]
Получаем текущий элемент x и следующий элемент y из списка M
i, j = i+1, i+2
Вычисляем индексы i и j для проверки условия (увеличиваем на 1 и 2 соответственно)
if (i + j) % 10 == max(M) % 10:
Проверяем, равен ли остаток от деления суммы индексов i и j на 10 остатку от деления максимального элемента списка M на 10
R.append(abs((x+y) - (i+j)))
Если условие выполняется, добавляем в список R модуль разности между суммой элементов x и y и суммой индексов i и j
print(len(R), min(R))
Выводим количество элементов в списке R и минимальное значение из этого списка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍2🔥1
Автор: Е.Джобс
Уровень: Базовый
Определите количество пар элементов последовательности, в которых хотя бы одно число кратно минимальному двузначному значению последовательности, которое кратно сумме своих цифр.
Гарантируется, что в последовательности есть хотя бы одно двузначное число, соответствующее условию. В ответе запишите количество найденных пар чисел, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
M = [int(x) for x in open('0. files/17.txt')]
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
R = []
for i in range(len(M) - 1):
x, y = M[i], M[i + 1]
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
R.append(x + y)
print(len(R), max(R))
Ответ: 537 19247
M = [int(x) for x in open('0. files/17.txt')]
Читает файл '0. files/17.txt', преобразует каждую строку в целое число и сохраняет в список M
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
Создает список D из чисел M, у которых ровно две цифры (учитывая модуль) и которые делятся на сумму своих цифр
R = []
Инициализирует пустой список R для хранения сумм подходящих пар
for i in range(len(M) - 1):
Цикл по индексам списка M (кроме последнего элемента, чтобы не выйти за границы)
x, y = M[i], M[i + 1]
Берет текущий элемент x и следующий y из списка M
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
Проверяет, что хотя бы одно из чисел x или y делится на минимальное число из списка D
R.append(x + y)
Если условие выполняется, добавляет сумму x и y в список R
print(len(R), max(R))
Выводит количество найденных пар и максимальную сумму из списка R
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5👍3
Автор: Д.Бахтиев
Уровень: Средний
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество троек последовательности, сумма цифр элементов которых равна минимальному положительному элементу последовательности, оканчивающемуся на 4. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
R = []
M = [int(x) for x in open('0. files/17.txt')]
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
for i in range(len(M) - 2):
a, b, c = M[i], M[i + 1], M[i + 2]
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
if summa == min(W):
R.append(a + b + c)
print(len(R), max(R))
Ответ: 11 180738
R = []
Создается пустой список R, в который будут записываться подходящие суммы троек чисел.
M = [int(x) for x in open('0. files/17.txt')]
Открывается файл 17.txt, читаются все числа и сохраняются в список M (каждое число преобразуется в int).
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
В список W попадают только положительные числа из M, у которых последняя цифра равна 4 (например, 14, 24, -34 не подойдет, т.к. по условию x > 0).
for i in range(len(M) - 2):
Цикл перебирает индексы списка M до предпоследнего элемента, чтобы можно было взять тройку чисел (a, b, c) = (M[i], M[i+1], M[i+2]).
a, b, c = M[i], M[i + 1], M[i + 2]
Текущая тройка чисел из M записывается в переменные a, b и c.
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
- str(a) + str(b) + str(c) — числа a, b, c преобразуются в строки и объединяются в одну строку (например, 123, -45, 678 → "123-45678").
- [int(x) for x in ... if x.isdigit()] — из этой строки берутся только цифры (минус игнорируется), и они преобразуются обратно в числа.
- sum(...) — вычисляется сумма всех цифр в тройке чисел.
if summa == min(W):
Проверяется, равна ли сумма цифр минимальному числу из W (т.е. минимальному положительному числу, оканчивающемуся на 4).
R.append(a + b + c)
Если условие выполнено, то сумма самой тройки чисел (a + b + c) добавляется в список R.
print(len(R), max(R))
В конце выводится:
- количество найденных троек (len(R)),
- максимальная сумма из этих троек (max(R)).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥3👍2