← Все вопросы

div и mod в паскале, какой остаток а какой целая часть? вечно путаю

Задан 25 месяцев назад195 просмотров2 ответа
6

Не могу запомнить что делает div, а что mod. Надо из числа 1234 вынуть последнюю цифру и сколько в нём десятков. Пишу наугад и получаю не то. Например для последней цифры написал div и вышло 123, а мне надо 4.

var
  n: integer;
begin
  n := 1234;
  writeln(n div 10);
  writeln(n mod 10);
end.

Объясните по-нормальному кто из них кто.

2 ответа

12
✓ Принятый ответ — помог автору

На самом деле твой код уже правильный, ты просто перепутал кто что:

  • n mod 10 = 4 — это последняя цифра (остаток от деления на 10).
  • n div 10 = 123 — это число без последней цифры (целая часть деления).

Запомни так:

  • div — целочисленное деление, отбрасывает остаток. 17 div 5 = 3 (5 влезает 3 раза).
  • mod — остаток от деления. 17 mod 5 = 2 (3 раза по 5 это 15, осталось 2).

Для твоей задачи:

var
  n: integer;
begin
  n := 1234;
  writeln('Последняя цифра: ', n mod 10);   // 4
  writeln('Без последней:   ', n div 10);   // 123
end.

Лайфхак: mod = 'остаток', думай про деление столбиком — это то, что осталось внизу. div = сколько целых раз поделилось. Очень частая тема на ОГЭ/ЕГЭ, разбери цифры числа этими двумя — половина задач решается.

4

я запомнил по буквам: mOd — Остаток. а div — это деление 'по-честному но без дробей'. проверка чётности тоже через mod: если n mod 2 = 0 — чётное

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект