🔗 Начнем с этой задачки (Серединное число 4.2), достаточно хорошая #Серединное_число
Вводим условный оператор if и прописываем условие проверки каждого из трех чисел относительно двух оставшихся, выводим как раз таки серединное число, задача решена
🔗Код:
🔗Код:
a, b, c = int(input()), int(input()), int(input())
if a < b < c or a > b > c:
print(b)
elif b < c < a or b > c > a:
print(c)
else:
print(a)
Задача Количество дней (4.3)
⭕️ Итак, вводим порядковый номер месяца, а код должен вывести количество дней в месяце #Количество_дней
⭕️ Итак, вводим порядковый номер месяца, а код должен вывести количество дней в месяце #Количество_дней
Для начала вспомним февраль, в нем 28 дней,
⭕️ В остальных: 1, 3, 5, 7, 8, 10, 12 месяцы - 31 день
⭕️ 4, 6, 9, 11 месяцы - 30 дней.
🧑💻Итак, как я у же и сказал, сначала февраль
⭕️ В остальных: 1, 3, 5, 7, 8, 10, 12 месяцы - 31 день
⭕️ 4, 6, 9, 11 месяцы - 30 дней.
🧑💻Итак, как я у же и сказал, сначала февраль
🔗 Задачу можно решить как условием, где мы перечислим все месяца, где дней 30, а их всего 4 (4, 6, 9, 11), так и другим способом
⭕️ Допустим, у нас 5 месяц, по второму условию, если m <= 7, то 30 + m%2.
Остаток от деления 5 на 2 получаем 1, прибавляем к 30 и получаем 31 день.
🔗 Если бы вышел 4 -й месяц, то остаток от деления будет равен 0, значит и дней у нас 30
🔗Код:
🔗 Другой вариант решения:
Из за того, что в июле и августе по 31 дню, такие решения и получаются
Остаток от деления 5 на 2 получаем 1, прибавляем к 30 и получаем 31 день.
🔗 Если бы вышел 4 -й месяц, то остаток от деления будет равен 0, значит и дней у нас 30
🔗Код:
m = int(input())
if m == 2:
print('28')
elif m <= 7:
print(30 + m%2 )
else:
print(31 - m%2 )
🔗 Другой вариант решения:
x = int(input())
if x == 2:
print(28)
elif (x < 8 and x % 2 == 0) or (x > 7 and x % 2 != 0):
print(30)
else:
print(31)
Из за того, что в июле и августе по 31 дню, такие решения и получаются
А если m > 7, допустим 9 месяц (сентябрь если че), делим на 2 получаем 1, вычитаем из 31 единицу, значит и дней 30 (Кстати а❌уеть в сентябре 30 дней)
Итак, задание описывать совершенно нет смысла, просто прописываем, за что отвечает каждое введенное значение #Самописный_калькулятор
🔗 Код:
num1 = int(input())
num2 = int(input())
sign = (input())
if num2 == 0 and sign == '/':
print ('На ноль делить нельзя!')
else:
if sign == ('/'):
print (num1 / num2)
elif sign == ('*'):
print (num1 * num2)
elif sign == ('+'):
print (num1 + num2)
elif sign == ('-'):
print (num1 - num2)
else:
print('Неверная операция')
Книжонка абсолютно ахуенно сделана и расписана так, что поймет чел с абсолютно любым мышлением, но в идеале иметь какие-то знания по программированию
Хотелось бы продолжить вести этот канал для 1 одного зрителя как мой собственный дневник больного, поэтому разберу с самого начала, что же я там начитал. Если периодически писать про прочитанные штуки, то , возможно, что-нибудь да запомню
🧑💻Итак, че это такое ваше Big(O)⁉️
0️⃣ Вообще, O это типо производительность нашего с вами алгоритма, скорость его выполнения (по мере увеличения входных данных), ‼️так как некоторые алгоритмы показывают свое превосходство именно при увеличении данных, которые мы подаем. ‼️
1️⃣🔗 В общем, есть некоторые разновидности этого самого Big(O).
Возьмем первые два вида и ахуе❌ный пример из книги.
3️⃣ Первый вид это конечно O(n). Это у нас линейное время, а используется для простого поиска (это вы запомните).
4️⃣ Второй вид это O(log n) - это как раз логарифмическое время (используется для бинарного поиска). Даже нашел вам первую попавшуюся картинку, кстати показано все
максимально наглядно. #Алгоритмы
0️⃣ Вообще, O это типо производительность нашего с вами алгоритма, скорость его выполнения (по мере увеличения входных данных), ‼️так как некоторые алгоритмы показывают свое превосходство именно при увеличении данных, которые мы подаем. ‼️
1️⃣🔗 В общем, есть некоторые разновидности этого самого Big(O).
Возьмем первые два вида и ахуе❌ный пример из книги.
3️⃣ Первый вид это конечно O(n). Это у нас линейное время, а используется для простого поиска (это вы запомните).
4️⃣ Второй вид это O(log n) - это как раз логарифмическое время (используется для бинарного поиска). Даже нашел вам первую попавшуюся картинку, кстати показано все
максимально наглядно. #Алгоритмы
5️⃣ Как мы можем заметить, O(1) и O(log n) работает одинаково хорошо. Давайте разберем каждый из них.
🖇 Первый это O(1), время выполнения не зависит от количества входных данных, алгоритм выполняет фиксированное количество операций независимо от того, насколько большими или малыми могут быть входные данные, а это значит что он супер эффективный.✅
🔗 К примеру:
У нас есть, значит, массив, допустим, набор цифр от 1 до 10. Выполнение алгоритма будет таким быстрым, потому что мы сразу имеем доступ к элементу этого массива.
⭕️ Хотим мы вывести 5 элемент массива и выводим.
6️⃣ Теперь O(log n). Как я уже сказал в прошлом посте, ‼️ такому алгоритму присущ бинарный поиск, ща мы его и рассмотрим, тут же рассмотрим O(n), также из прошлого поста (Просто их проще сравнивать). #Бинарный_поиск
🖇 Первый это O(1), время выполнения не зависит от количества входных данных, алгоритм выполняет фиксированное количество операций независимо от того, насколько большими или малыми могут быть входные данные, а это значит что он супер эффективный.✅
🔗 К примеру:
У нас есть, значит, массив, допустим, набор цифр от 1 до 10. Выполнение алгоритма будет таким быстрым, потому что мы сразу имеем доступ к элементу этого массива.
⭕️ Хотим мы вывести 5 элемент массива и выводим.
6️⃣ Теперь O(log n). Как я уже сказал в прошлом посте, ‼️ такому алгоритму присущ бинарный поиск, ща мы его и рассмотрим, тут же рассмотрим O(n), также из прошлого поста (Просто их проще сравнивать). #Бинарный_поиск
7️⃣ Берем пример из книги, есть у вас 128 имен (отсортированных ес че). Хотите вы найти определенное имя, пусть оно будет под номером 🟰12🟰. Что же б❌я делать?
8️⃣ Первое, что можно сделать, это тупо перебрать, как раз это у нас и есть O(n) - простой поиск.❗️ Но обычный перебор 128 имен это как-то слишком скучно, давайте быстрее. Тут выходит ферзь O(log n),‼️ Именно это Big(O) отвечает за бинарный поиск. 🔝Скорость этого алгоритма растет логарифмически с ростом размером данных (Типа чем больше данных, тем круче он будет по сравнению с O(n), ща объясню).
🔗Вернемся к 128 именам. Вместо того, чтобы как дауничи перебирать сидеть, разделяем 128 на 2 и спрашиваем, находится ли число, которое мы ищем, посередине??
9️⃣⭕️ Если нет, то сравниваем 12 и 64. Оказывается, что 12 меньше 64 (ах❌еть), а значит перемещаемся в диапазон от 1 до 64, теперь у нас 64 имени, та половина нам больше не нужна.
1️⃣0️⃣ Дальше делим 64 на 2 и смотрим, посередине ли находится наше искомое имя? Если нет, то снова сравниваем, 12 < 32, значит идем в диапазон от 1 до 32.
1️⃣1️⃣ ✅ Тоже самое делаем при последующем делении на 2, сначала получаем 16, потом 8. попадаем в диапазон от 8 до 16. Мы почти близко... ИИ того у нас получается каких то 5 шагов вместо 128!!!!! (Это мы разницу разобрали между простым и бинарным поиском) #Бинарный_поиск
8️⃣ Первое, что можно сделать, это тупо перебрать, как раз это у нас и есть O(n) - простой поиск.❗️ Но обычный перебор 128 имен это как-то слишком скучно, давайте быстрее. Тут выходит ферзь O(log n),‼️ Именно это Big(O) отвечает за бинарный поиск. 🔝Скорость этого алгоритма растет логарифмически с ростом размером данных (Типа чем больше данных, тем круче он будет по сравнению с O(n), ща объясню).
🔗Вернемся к 128 именам. Вместо того, чтобы как дауничи перебирать сидеть, разделяем 128 на 2 и спрашиваем, находится ли число, которое мы ищем, посередине??
9️⃣⭕️ Если нет, то сравниваем 12 и 64. Оказывается, что 12 меньше 64 (ах❌еть), а значит перемещаемся в диапазон от 1 до 64, теперь у нас 64 имени, та половина нам больше не нужна.
1️⃣0️⃣ Дальше делим 64 на 2 и смотрим, посередине ли находится наше искомое имя? Если нет, то снова сравниваем, 12 < 32, значит идем в диапазон от 1 до 32.
1️⃣1️⃣ ✅ Тоже самое делаем при последующем делении на 2, сначала получаем 16, потом 8. попадаем в диапазон от 8 до 16. Мы почти близко... ИИ того у нас получается каких то 5 шагов вместо 128!!!!! (Это мы разницу разобрали между простым и бинарным поиском) #Бинарный_поиск
Итак, подается 4 числа, нам нужно понять, имеют ли две клетки одинаковый цвет, или нет? #Шахматная_доска
🔗 Шахматная доска 5.1
Итак, начнем с того, что❗️сумма координат всех белых клеток всегда четное число, а вот черных наоборот - нечетное.
⭕️ Если сумма координат для первой клетки это четное и сумма координат для второй клетки это тоже четное число, то выводим ('YES').
🔗 Код:
Итак, начнем с того, что❗️сумма координат всех белых клеток всегда четное число, а вот черных наоборот - нечетное.
⭕️ Если сумма координат для первой клетки это четное и сумма координат для второй клетки это тоже четное число, то выводим ('YES').
🔗 Код:
x1, y1, x2, y2 = int(input()), int(input()), int(input()), int(input())
if (x1 + y1) % 2 == (x2 + y2) % 2:
print('YES')
else:
print('NO')
🔗 Римские цифры 5.1
Итак, вводим арабскую цифру, а программа нам выводит римскую.
⭕️ Для начала нам понадобится список римских цифр ['I', 'II', 'III', 'IV','V', 'VI', 'VII', 'VIII', 'IX', 'X'] - Кайф. Затем пишем решение #Римские_цифры
🔗 Код:
Итак, вводим арабскую цифру, а программа нам выводит римскую.
⭕️ Для начала нам понадобится список римских цифр ['I', 'II', 'III', 'IV','V', 'VI', 'VII', 'VIII', 'IX', 'X'] - Кайф. Затем пишем решение #Римские_цифры
🔗 Код:
num = int(input())
num -= 1
a = ['I', 'II', 'III', 'IV','V', 'VI', 'VII', 'VIII', 'IX', 'X']
if -1 < num <= 10:
print(a[num])
else:
print('ошибка')