Репетитор IT mentor
9.89K subscribers
874 photos
13 videos
29 files
722 links
Блог с заметками репетитора по математике, физике, информатике. Рассказываю о задачах, о способах их решения.

vk.com/itmentor
dzen.ru/itmentor
https://www.youtube.com/@it_men

Автор: @physicist_i
Download Telegram
Programming Challenges v 4.0.png
1.6 MB
👨🏻‍💻 Programming Challenges v 4.0 — это целый список идей того, что можно запрограммировать. От легкого до очень сложного.

💡 Топ 8 лучших ресурсов для практики программирования:
1. Codewars
2. HackerRank
3. Coderbyte
4. CodinGame
5. LeetCode
6. Topcoder
7. Project Euler
8. CodeFights

#программирование #практика #computer_science #алгоритмы
Задача 15.2 из ОГЭ: Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 4. Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число  — минимальное число, оканчивающееся на 4.

👩‍💻 Задачу можно решить и в пару строк, но здесь уже сильно снизится понимание. Покажу пример:

N = int(input("Введите количество чисел: "))
print("Ответ: ", min([ x for x in [int(input("x = ")) for x in range(N)] if x % 10 == 4 ]))


👩‍💻 Цикл for дает лучшее понимание:
N = int(input("Введите количество чисел:"))
mi = 30000
for k in range(N):
number = int(input("Текущее число: "))
if (number % 10 == 4) and (number < mi):
mi = number
print("Минимальное число, оканч-ся на 4: ", mi)


👩‍💻 Но самый оптимальный и понятный код получается с помощью цикла while, которые дает возможности тонкой настройки цикла, что иногда нужно, если наперед не задано точное количество итераций:
N = int(input("Введите количество чисел: "))
min_4 = 30000
k = 1
while k <= N:
number = int(input("Текущее число: "))
if (number % 10 == 4) and (number < min_4):
min_4 = number
k = k + 1
print("Минимальное число, оканч-ся на 4: ", min_4)


#информатика #программирование #computer_science #алгоритмы #python

💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Тип 5. У исполнителя Альфа две команды. которым присвоены номера:
1. Вычти b;
2. Умножь на 5.
(b  — неизвестное натуральное число).
Выполняя первую из них, Альфа уменьшает число на экране на b, а выполняя вторую, умножает это число на 5. Программа для исполнителя Альфа  — это последовательность номеров команд. Известно, что программа 21121 переводит число 2  в число 17. Определите значение b.


🖥 Решение:

Всегда с учениками решали эту задачу аналитически (так вроде быстрее). Но на последнем занятии я подумал, а если алгоритм будет сложный, можно ли написать что-то универсальное? Например, программу, которую можно будет масштабировать до любого количества инструкций любой сложности... И вот пришла такая идея:

def f1(x, b): return x - b
def f2(x): return 5*x

def solution(N, program):
list_digits = list(program)
for b in range(1, 1000):
res = N
for char in list_digits:
if char == '1': res = f1(res, b)
if char == '2': res = f2(res)
if res == 17:
print("b = ", b)
break
N = 2
program = '21121'
solution(N, program)


#информатика #программирование #computer_science #алгоритмы #python

💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM