Определить, какая цифра числа больше

Задача

Дано целое число, состоящее из разных цифр. Определить, какая из цифр заданного числа больше, т. е. найти наибольшую цифру числа.

Решение

Переменные: n - задаваемое число, max - максимальная цифра числа.

Пусть может вводится как положительное, так и отрицательное число. Так как знак числа в данной задаче никакого значения не имеет, то сразу избавимся от него с помощью условного оператора: если число отрицательно, то найдем его абсолютное значение.

В случае, когда пользователь вводит число 0, это значение и будет единственной и максимальной цифрой. С другой стороны, переменной max надо что-то присвоить до выполнения цикла поиска самой большой цифры. Присвоим ей 0, а цикл будем выполнять только при условии, что n больше 0.

Цикл выполняется до тех пор, пока n больше 0. На каждой итерации цикла извлекается последняя цифра (операцией нахождения остатка от деления на 10) и сравнивается со значением max. Если она больше, то присваивается max. Затем надо избавиться от этой последней цифры в числе n, что осуществляется с помощью деления нацело на 10.

var
    n: longint;
    max: byte;
begin
    readln(n);
    if n < 0 then n := abs(n);
    max := 0;
    if n > 0 then 
        while n > 0 do begin
            if n mod 10 > max then
                max := n mod 10;
            n := n div 10;
        end;
    writeln(max);
end.

Тема

Циклы

Уровень

Комбинированные задачи

Последняя редакция