Магия без магии
Давайте научимся математическим приемам, которые нужны на экзамене. Это простые вычислительные лайфхаки.
Задача: найти последнее число всего числа
python
ввод = int(input())
# представим, что ввод - 15
# тогда можно поделить его на 10 с остатком и вывести только остаток
print(ввод % 10)Вывод:
txt
>> 15
<< 5Идеально!
Второй трюк: делится ли 16 на 4?
Используем тот же остаток от деления
python
ввод = int(input())
if ввод % 4 == 0: # если остаток от 16:4 равен 0
print("Делится")
else:
print("Есть остаток от деления, значит не делится")Вывод:
txt
>> 16
<< ДелитсяТеперь задача
Даётся ряд чисел, конец ряда - 0, надо посчитать всю сумму чисел, которые оканчиваются на 4. Погнали. Ещё закрепим, как считать сумму чисел.
python
sum = 0
while True:
number = int(input())
if number == 0:
break
if number % 10 == 4:
sum += number
print(sum)Кратко объяснение по строчкам: объявляем переменную с суммой, ставим 0. Начинаем цикл while. Ждём ввод числа и записываем в number. Если number = 0, значит - конец. Если остаток от деления number на 10 равен 4, значит оканчивается на 4, тогда прибавляем к общей сумме только что введённое число.
Вывод:
txt
>> 16
>> 14
>> 24
>> 19
>> 44
>> 0
<< 82Да кто такие эти ваши
Речь идет про чётные/нечётные числа.
Напомню: чётные числа - числа, которые делятся на 2 без остатка: 2, 4, 128, 52. Нечётные - противоположно: 17, 67, 69
Из определения можно вывести уже формулу: если делится без остатка на 2, значит четное. Давайте посчитаем сумму всех четных чисел, изменив 1 место в коде:
python
sum = 0
while True:
number = int(input())
if number == 0:
break
if number % 2 == 0: # без остатка на 2 => четное
sum += number
print(sum)Вывод:
txt
>> 16
>> 14
>> 24
>> 19
>> 44
>> 0
<< 98А вот тут важно
Иногда звучит что-то вроде
Найдите сумму трёхзначных чисел.
Задачка с подвохом, но решаема. Просто надо понять таблицу ниже, вводимое число возьмём за N:
| N-Значность | Описание | Диапазон |
|---|---|---|
| xx | Двухзначные | if 100 > N > 9 |
| xxx | Трехзначные | if 1000 > N > 99 |
| xxxx | Четырёхзначные | if 10000 > N > 999 |
Маленькое пояснение: чтобы понять, сколько знаков в числе, нам нужно загнать рамки. Например двухзначное. Это: 10 (два знака) и больше, но меньше 100, потому что 100 - это три знака. 9 не подходит, потому что это один знак. Поэтому нестрогое неравенство: больше 9 (но не 9), но меньше 100 (но не 100)
То есть, мы просто берем if и начинаем проверять, что число входит в диапазон. Давайте напишем код для практики. Надо вывести количество двухзначных чисел:
python
count = 0
while True:
number = int(input())
if number == 0:
break
if 100 > number > 9:
count += 1
print(count)Вывод:
txt
>> 19
>> 6
>> 4
>> 10
>> 9
>> 8
>> 0
<< 2Всё верно: из всех перечисленных чисел двухзначных числа ровно два.
Таблица
Подводя итог теоретической части, хотелось бы показать эту таблицы-шпаргалки. Она группирует большинство условий из задач и даёт объяснение, как делать.
Какой цикл использовать:
| Условие | Объяснение | Как решать |
|---|---|---|
| ...Программа получает на вход количество чисел в последовательности... | Дают число итераций цикла | Сначала просим ввести число всех итераций цикла (назовем N) и используем for _ in range(N) |
| ...количество введенных чисел неизвестно, последовательность чисел заканчивается 0 (0 — признак окончания ввода, не входит в последовательность)... | Чисел неизвестно, надо "нащупать" конец последовательности (в данном случае "0") | Делаем цикл while True + в цикле числа, которые получаем, проверяем через if N == 0: break, тогда цикл завершится, когда введут 0 |
Кратность, четность, оканчивается на..., мин/макс
| Условие | Объяснение | Как решать |
|---|---|---|
| ...программу, которая ... определяет число, оканчивающееся на 4 | Искать числа где конец - 4: например 14 | if N % 10 == 4 |
| ...программу, которая ... определяет количество чисел | Создать переменную с количеством и увеличивать ее при каждой итерации | count = 0 ... в цикле: count += 1, при каждом числе |
| ...программу, которая ... определяет сумму чисел | Создать переменную sum и суммировать её | sum = 0 ... в цикле: sum += N |
| ...программу, которая ... определяет чёт/нечёт числа | Искать чёт/нечёт числа | if N % 2 == 0 без остатка - это чётное, с остатком - нечётное |
| ...программу, которая ... определяет мин/макс числа | Сравнивать мин/макс с переменными, которые создали до этого | Для максимального: if N > max, то перезаписать max на N, для минимального меняется только знак и max -> min |
| ...программу, которая ... определяет N-значные числа | На внимательность | По таблице выше |
Ты - 💪
Давайте объективно: вы узнали почти всё, что нужно на экзамене. Если вы читали вдумчиво, то у вас сейчас достаточно знаний, чтобы решить 16 задание. Переходите на следующий пост - там будет 100% практики и ничего нового.