Дано натуральное десятичное число . Напишите программу, в которой: 1) из цифр данного числа формируется одномерный целочисленный массив; 2) определяются наибольшая и наименьшая цифры данного числа; 3) находятся сумма и произведение цифр, образующих данное число.
Запишем программу на Pascal. Операция mod даёт последнюю цифру числа, а div удаляет её. Поэтому сначала получим цифры в обратном порядке, затем поменяем местами симметричные элементы массива, чтобы порядок цифр стал таким же, как в десятичной записи. У числа, не превосходящего
program Digits;
var a: array[ .. ] of integer;
n, x, m, i, t, minDigit, maxDigit: integer;
sum, product: integer;
begin
readln(n);
x := n;
m := ;
while x > do
begin
m := m + ;
a[m] := x mod ;
x := x div
end;
for i := to m div do
begin
t := a[i];
a[i] := a[m-i+ ];
a[m-i+ ] := t
end;
minDigit := a[ ];
maxDigit := a[ ];
sum := ;
product := ;
for i := to m do
begin
if a[i] < minDigit then minDigit := a[i];
if a[i] > maxDigit then maxDigit := a[i];
sum := sum + a[i];
product := product * a[i]
end;
writeln('Цифры:');
for i := to m do write(a[i], ' ');
writeln;
writeln('Минимальная цифра: ', minDigit);
writeln('Максимальная цифра: ', maxDigit);
writeln('Сумма: ', sum);
writeln('Произведение: ', product)
end.
После первого цикла m равно количеству цифр. В цикле перестановки индексом правого элемента служит m-i+; средняя цифра при нечётном m не меняется. Перед последним циклом минимум и максимум равны первой цифре, сумма — нулю, произведение — единице. На каждом шаге сравнения уточняют минимум и максимум, а сложение и умножение присоединяют очередную цифру.
Пример: при
Программа формирует массив цифр числа и вычисляет их минимум, максимум, сумму и произведение. Для числа
