Практика



Все варианты взяты с сайта sdamgia.ru/

🏹 Задача 1 (эту подробно)


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


Входные данныеВыходные данные
314
24
14
34


В любой задаче самое главное - отличить зёрна от плёвна и ответить на вопрос "что от нас хотят?".


В данной задаче ключевые слова:
1. Получает на вход количество чисел, затем сами числа - это значит, что наше первое действие - это получить размер ряда, чтобы запустить цикл for с range(размер ряда)
2. Определить минимальное число
3. Определить числа, оканчивающиеся на "4"


Иначе говоря, наш план такой:
1. Получить n - число итераций цикла
2. Объявить переменную для минимального значения
4. Запустить цикл for _ in range(n)
5. В цикле проверять, чтобы число кончалось на "4"
6. Если прошло проверку, то сравнить минимальное значение и наше новое значение, и если новое меньше, то новое записать в минимальное.


Поехали:

python
# получаем число итераций
n = int(input())

# память для минимума, пока пустоту
minimum = None

# начинаем цикл с n итераций
for _ in range(n):
     # получаем число в цикле
     number = int(input())

     # проверяем последнее число
     if number % 10 == 4:
          # если минимум - None, то минимум становится первым минимальным числом 
          if minimum == None:
               minimum = number

          # если минимум больше нового значения, переписываем
          if minimum > number:
               minimum = number

print(minimum)


🏹 Задача 2



Напишите программу, которая в последовательности натуральных чисел определяет количество однозначных чисел, кратных 3. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается 0 (0  — признак окончания ввода, не входит в последовательность). Количество чисел 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число: количество однозначных чисел, кратных 3.


Входные данныеВыходные данные
1211
9
4
0


Что выносим главное



1. Однозначные числа (10 > n >= 0) (да, чисто технически 0 это однозначное, но в нашем случае 0 - это выход из цикла, поэтому в коде мы возьмем не включительно)
2. Кратность 3
3. Итерации неизвестны: будет while + break при "0"
4. Вывести всё количество чисел, подходящих под условия


План



1. Переменная для подсчета количества чисел
2. Цикл while + break при "0"
3. В цикле получаем через input число
4. Проверяем на кратность
5. Проверяем на однозначность
6. Увеличиваем счетчик, если условия выполнены
7. Выводим результат


Погнали!



python
# счетчик
count = 0

# начинаем бесконечный цикл
while True:
     # получаем число в цикле
     number = int(input())

     if number == 0:
          break

     # проверяем кратность на 3
     if number % 3 == 0: # остаток от деления на 3 должен быть 0
          # проверяем на однозначность
          if 10 > number > 0:
               # на этом этапе проверки пройдены
               # можно увеличить счетчик
               count += 1

print(count)


🏹 Задача 3



Напишите программу, которая в последовательности целых чисел определяет их количество и сумму четных чисел. Программа получает на вход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность).

Количество чисел не превышает 1000. Введенные числа по модулю не превышают 30 000. Программа должна вывести два числа: длину последовательности и сумму четных чисел.


Входные данныеВыходные данные
43
6064
15
0


Что выносим главное



1. Надо посчитать количество чисел
2. Надо посчитать сумму чётных чисел
3. Цикл while + break с "0", как конец
4. Выводим по порядку: длинна последовательности -> сумму чётных


План



1. Объявляем переменную count для общего числа чисел
2. Объявляем переменную sum для суммы чётных чисел
3. Делаем бесконечный цикл
4. Получаем number в каждой итерации
5. Сравниваем number с 0, и если что выходим
6. Сразу увеличиваем счётчик всех чисел
7. Если число без остатка делится на 2, значит чётное
8. Суммируем п. 7. в общую переменную


Погнали!



python
# счетчик
count = 0

# сумма всех четных
sum = 0

# начинаем бесконечный цикл
while True:
     # получаем число в цикле
     number = int(input())

     if number == 0:
          break

     # сразу увеличиваем т.к. из условия 1. нужно количество всех чисел
     count += 1

     # если введённое число делится на 2 без остатка
     if number % 2 == 0:
          # суммируем
          sum += number

print(count)
print(sum)


🏹 Задача 4



Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 6. Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число  — минимальное число, оканчивающееся на 6.


Входные данныеВыходные данные
316
26
16
36


Что выносим главное



1. Сначала длина последовательности, потом числа, следовательно:
2. Цикл for + range, зависящий от первой переменной (длинны последовательности), которую надо получить
3. Минимальное число
4. Оканчивается на 6


План



1. Получаем n - длину последовательности (сколько раз выполнить цикл?)
2. Объявим minimal переменную, в которой будем хранить минимум
3. Напишем цикл for _ in range(n)
4. В цикле получаем number - число при итерации
5. Проверяем, кончается ли на 6 через if number % 10 == 6 (остаток от деления на 10 равен 6)
6. Если number меньше minimal, то minimal станет number
7. Вывод minimal


Погнали!



python
# получаем число итераций цикла
n = int(input())

# объявляем переменную для хранения минимума
# пока ставим None, потом первое значение станет минимальным
minimal = None

# цикл, который выполняется n раз
for _ in range(n):
     # получаем число в текущей итерации
     number = int(input())

     # если остаток от деления на 10 даёт 6, значит последняя цифра - 6
     if number % 10 == 6:
          # если нет минимального значения, значит цикл только начался
          if minimal == None:
               # присваиваем первое значение, оно теперь - минимальное
               minimal = number

          # если минимальное значение больше number
          if minimal > number:
               # теперь number - минимальное значение
               minimal = number

# выводим минимум
print(minimal)


🏹 Задача 5



Эту задачу надо решить самостоятельно: выделит главное, составить план и написать решение. Потом можно свериться с моим решением.


Напишите программу, которая в последовательности натуральных чисел определяет количество трехзначных чисел, кратных 4. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность).

Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число: количество трехзначных чисел, кратных 4.


Входные данныеВыходные данные
1201
9
365
4
0


Что выносим главное



???


План



???


Погнали!



python
???


Моё решение