Случайное трехзначное число, оканчивающееся на 0

Задача

Сгенерировать случайное трехзначное число, оканчивающееся на ноль.

Решение

Трехзначные числа - это числа от 100 до 999.

1. Общее количество целых чисел (количество возможных целых значений) в этом диапазоне 900. Если функции random передать параметр 900, то будет сгенерировано число от 0 до 899 включительно (как раз 900 значений, учитывая ноль). Итак, имеем выражение random(900).

2. Поскольку нам нужно число не от 0 до 899, а от 100 до 999, то прибавим к полученному в п. 1 выражению число 100. Получим random(900) + 100.

3. Будем получать случайное трехзначное число, оканчивающееся на ноль, путем отбрасывания единиц. То есть, если было сгенерировано число 356, то надо вычесть шесть единиц, тогда получится 350. Если же было сгенерировано число 999, то получится 990. Чтобы это сделать, надо найти остаток от деления на 10 и вычесть его из случайного числа. На языке программирования Паскаль это можно сделать с помощью такого выражения n - n mod 10.

4. Если же сгенерированное случайное число уже оканчивалось на 0, то нахождение остатка от деления на 10 даст 0. Вычитая ноль, мы никак не изменим число.

var 
    n: integer;
 
begin
    randomize;
 
    n := random(900) + 100;
 
    n := n - n mod 10;
 
    writeln(n);
end.

Другой способ решения - получить случайное число от 10 до 99, а затем умножить его на десять:

var 
    n: integer;
 
begin
    randomize;
 
    n := random(90) + 10;
 
    n := n * 10;
 
    writeln(n);
end.