Базовые алгоритмы используемые в решении.
Задача 2
print("x y z w")
for x in range(0,2):
for y in range(0,2):
for z in range(0,2):
for w in range(0,2):
if 'переведенное в язык Python условие':
print(x, y, z, w)
Правила перевода условия в язык Python:
| Логическая операция | python |
| Отрицание ¬ | not() |
| Логическое умножение ∧ | and |
| Логическое сложение ∨ | or |
| Следование X ⟶ Y | x <= y |
| Равносильность ≡ | == |
Задача 5
5.1 Десятичное преобразование
# Перебираем входные числа n
for n in range(0,100):
# 1. Преобразовать число в строку, для получения цифр числа
s = str(i)
# 2. Из цифр получаем новые числа
s1 = int(s[0]) + int(s[1])
s2 = int(s[1]) + int(s[2])
#3. Из полученных чисел строим выходное число соединяя их как строки
r = str(s1) + str(s2)
#4. Проверяем получили ли мы нужное нам выходное число r
if r == '1111':
# Сообщаем входное число n
print(n)
5.2 Двоичное преобразование
# Перебираем входные числа N
for n in range(1,100):
# 1. Переводим в двоичную запись и преобразовать число в строку, для получения цифр числа
a = bin(i)[2:]
s = str(a)
# 2. Из цифр получаем двоичную запись нового число R (r_bin)
k = 0
for i in s:
k = k + int(i)
s1 = str(k%2)
r_bin = s + s1
# 3. Получаем десятичную запись числа R
r = int(r_bin,2)
#4. Проверяем получили ли мы нужное нам выходное число r
if r > 85:
# Сообщаем входное число n
print(n)
Может потребоваться функция для удаления лидирующих нулей: s.strip(«0»)
Задача 6
6.1 Найти количество точек внутри фигуры
# Импортируем модуль черепашки
import turtle
# Устанавливаем максимальную скорость
turtle.tracer(0)
# Устанавливаем шаг. Его можно изменять если получается слишком маленький рисунок
step = 30
# Чертим рисунок исходя из условий задач
for i in range(4):
# Вперед
turtle.fd(10*step)
# Влево
turtle.lt(90)
# Вправо
turtle.rt(90)
# Поднимаем перо и чертим координатную плоскость точками
turtle.up()
for x in range(-10,10):
for y in range(-10,10):
turtle.goto(x * step,y * step)
# Устанавливаем размер точки
turtle.dot(3)
6.2 Найти расстояние между начальным положением черепахи и конечным положением
# Импортируем модуль черепашки
import turtle
# Устанавливаем максимальную скорость
turtle.tracer(0)
# Получаем начальные координаты черепашки
x1 = turtle.xcor()
y1 = turtle.ycor()
# Чертим рисунок исходя из условий задач
for i in range(11):
# Вперед
turtle.fd(36)
# Вправо
turtle.rt(72)
# Получаем конечные координаты черепашки
x2 = turtle.xcor()
y2 = turtle.ycor()
# Определяем расстояние между двумя точками по теореме Пифагора
print(round(((x2 - x1)**2 + (y2 - y1)**2))**0.5)
Внимание
В задаче, где нужно найти расстояние переменную шаг не используем — это исказит результат
Задача 8
8.1 Слова по порядку
s1 = 'батыр'
s = sorted(s1)
k = 0
for a1 in s:
for a2 in s:
for a3 in s:
for a4 in s:
for a5 in s:
k = k + 1
b = a1 + a2 + a3 + a4 + a5
if 'условие из задачи':
print(k, '===', b)
8.2 Составление слов
s1 = 'росомаха'
s = sorted(s1)
k = 0
#Столько циклов сколько букв в получаемом слове
for a1 in s:
for a2 in s:
for a3 in s:
for a4 in s:
for a5 in s:
b = a1 + a2 + a3 + a4 + a5
if 'условие':
k = k + 1
print(k)
Задача 12
s = 30 * '7' + 50 * '9'
print(s)
while ('49' in s) or ('97' in s):
if '47' in s:
s = s.replace('47','74',1)
print(s)
Задача 14
alf = '0123456789ABCDEFGHI'
for x in alf:
b = int('3' + x + '2' + x + '1' + x + '0' + x + '1',19) + int(x + '2024',19) + int('1' + x + '077',19)
if b % 18 == 0:
print(b / 18)
Задача 23
def kol_put(a1,a2):
new1_a1 = a1 - 2
if new1_a1 == a2:
n = 1
elif new1_a1 < a2:
n = 0
else:
n = kol_put(new1_a1,a2)
new2_a1 = a1 // 2
if new2_a1 == a2:
m = 1
elif new1_a1 < a2:
m = 0
else:
m = kol_put(new2_a1,a2)
return n + m
kol1 = kol_put(50,11)
kol2 = kol_put(11,2)
print(kol1 * kol2)
=====
Задача 25
Шаблон числа
from fnmatch import *
for i in range(2024, 10**10+1, 2024):
if fnmatch(str(i), '1?2157*4'):
print(i, i//2024)
