Статья Автор: Корельская Елена Юрьевна

Урок 4. Теория

На прошлом занятии мы узнали, что с числовыми переменными можно выполнять действия: сложение (+), вычитание (-), умножение (*), деление (/), возведение в степень (**).
Эти действия можно выполнять как с целыми(int), так и вещественными числами (float).

Есть еще две операции, которые применяются только к целым числам (int), результат этих действий – тоже целое число (int).
  1. Целочисленное деление a // b – это получение неполного частного при делении целого числа a на целое число b. Результат – целое число.
Например,      7 // 2 = 3
               100 // 20 = 5
               30 // 4 = 7
  1. Взятие остатка от деления  a % b – это получение остатка при делении целого числа a на целое число b. Результат – целое число.
Например,      7 % 2 = 1
               100 % 20 = 0
               30 % 4 = 2

При решении некоторых задач полезно бывает выполнение целочисленного деления с округлением вверх, то есть до ближайшего целого числа не меньшего a // b.
Задача: n обучающихся едут на экскурсию на автобусах. В каждый автобус вмещаются 20 человек. Нужно определить, сколько автобусов нужно заказать.
  1. Если n = 100, то потребуется 100 // 20 = 5 автобусов.
  2. Если n = 110, то потребуется 110 // 20 = 5 автобусов и еще один автобус, чтобы разместить оставшихся 10 человек. То есть нужно будет 110 // 20  + 1 = 6
Иными словами, нам нужно найти округление вверх до ближайшего целого числа.

Целочисленное деление с округлением вверх можно записать следующей формулой:
  (a+b-1)//b .
Убедимся, что эта формула округляет верно:
  1. Если а делится на b, то добавление к a числа b – 1 не изменит результата, ведь b-1<b.
  2. Если a не делится нацело на b, то прибавление числа b-1 увеличит результат на 1.
Убедимся в этом, на примере задачи, приведенной выше:
  1. a =100, b = 20: (a+b-1)//b = (100+20-1)//20 = 119//20 = 5
  2. a =110, b = 20: (a+b-1)//b = (110+20-1)//20 = 129//20 = 6


 
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать