"Поколение Python": курс для начинающих, модуль 2.5 целочисленная арифметика. Часть 2; решения

Тема урока: работа с целыми числами

  • Операция возведения в степень (**)
  • Операция нахождения остатка (%)
  • Операция целочисленного деления (//)
  • Обработка цифр числа
  • Частые ошибки
  • Решение задач

Аннотация. Урок посвящён дополнительным операциям при работе с целыми числами. Изучим дополнительные операции, а также научимся обрабатывать цифры целого числа.

Далее описаны решения задач из этого модуля курса.

Геометрическая прогрессия

Геометрической прогрессией называется последовательность чисел b1, b2, …, bn, каждое из которых, начиная с b2, получается из предыдущего умножением на одно и то же постоянное число q (знаменатель прогрессии).

Если известен первый член прогрессии и ее знаменатель, то n-ый член геометрической прогрессии находится по формуле

b_n=b_1 * q ** (n−1)

Входные данные На вход программе подаются три целых числа: b1, q и n, каждое на отдельной строке.

Выходные данные Программа должна вывести n-ый член геометрической прогрессии.

Решение:

b_1 = int(input())
q = int(input())
n = int(input())
print(b_1 * q ** (n - 1))

Расстояние в метрах

Напишите программу, которая находит полное число метров по заданному числу сантиметров.

Формат входных данных На вход программе подаётся натуральное число – количество сантиметров.

Формат выходных данных Программа должна вывести одно число – полное число метров.

Решение:

centimeters = int(input())
meters = centimeters // 100
print(meters)

Мандарины 🍊

n школьников делят k мандаринов поровну, неделящийся остаток остается в корзине. Сколько целых мандаринов достанется каждому школьнику? Сколько целых мандаринов останется в корзине?

Формат входных данных На вход программе подаётся два целых числа: количество школьников и количество мандаринов, каждое на отдельной строке.

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

Решение:

n = int(input())
k = int(input())
print(k // n)
print(k % n)

Сама неотвратимость

Безумный титан Танос собрал все 6 камней бесконечности и намеревается уничтожить половину населения Вселенной по щелчку пальцев. При этом если население Вселенной является нечетным числом, то титан проявит милосердие и округлит количество выживших в большую сторону. Помогите Мстителям подсчитать количество выживших.

Формат входных данных На вход дается число целое n – население Вселенной.

Формат выходных данных Программа должна вывести одно число – количество выживших.

Решение:

n = int(input())
print(n // 2 + n % 2)

Пересчёт временного интервала ⌚

Напишите программу для пересчёта величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах в следующем формате:

<исходное кол-во минут> мин - это <полное кол-во часов> час <оставшееся кол-во минут> минут.

Формат входных данных На вход программе подаётся целое число – количество минут.

Формат выходных данных Программа должна вывести текст в соответствии с условием задачи.

Примечание. Не забывайте точку в конце. 😊

Решение:

minutes = int(input())
print(f"{minutes} мин - это {minutes // 60} час {minutes % 60} минут.")

Номер купе 🚉🌶️

В купейном вагоне имеется 99 купе с четырьмя местами для пассажиров в каждом. Напишите программу, которая определяет номер купе, в котором находится место с заданным номером (нумерация мест сквозная, начинается с 11).

Формат входных данных На вход программе подаётся целое число – место с заданным номером в вагоне.

Формат выходных данных Программа должна вывести одно число – номер купе, в котором находится указанное место.

Решение:

number = int(input())
print((number - 1) // 4 + 1)

Трёхзначное число

Напишите программу, которая рассчитывает сумму и произведение цифр положительного трёхзначного числа и выводит текст в следующем формате:

Сумма цифр = <сумма цифр>
Произведение цифр = <произведение цифр>

Формат входных данных На вход программе подаётся положительное трёхзначное число.

Формат выходных данных Программа должна вывести текст в соответствии с условием задачи.

Примечание. Обращайте внимание на лишние пробелы или их отсутствие.

Решение:

num = int(input())
digit3 = num % 10
digit2 = (num // 10) % 10
digit1 = num // 100

print("Сумма цифр =", digit3 + digit2 + digit1)
print("Произведение цифр =", digit3 * digit2 * digit1)

Перестановка цифр

Дано трехзначное число abc, в котором все цифры различны. Напишите программу, которая выводит шесть чисел, образованных при перестановке цифр заданного числа.

Формат входных данных На вход программе подаётся положительное трёхзначное целое число, все цифры которого различны.

Формат выходных данных Программа должна вывести шесть чисел, образованных при перестановке цифр заданного числа, в следующем порядке (каждое на новой строке): abc, acb, bac, bca, cab, cba.

Решение:

num = int(input())
c = num % 10
b = (num // 10) % 10
a = num // 100

print(a, b, c, sep="")
print(a, c, b, sep="")
print(b, a, c, sep="")
print(b, c, a, sep="")
print(c, a, b, sep="")
print(c, b, a, sep="")

Четырёхзначное число

Напишите программу для нахождения цифр четырёхзначного числа.

Формат входных данных На вход программе подаётся положительное четырёхзначное целое число.

Формат выходных данных Программа должна вывести текст в соответствии с условием задачи.

Решение:

num = int(input())
digit4 = num % 10
digit3 = (num // 10) % 10
digit2 = (num // 100) % 10
digit1 = num // 1000
print("Цифра в позиции тысяч равна", digit1)
print("Цифра в позиции сотен равна", digit2)
print("Цифра в позиции десятков равна", digit3)
print("Цифра в позиции единиц равна", digit4)