Для матрицы n×n, заполненной случайными целыми числами из диапазона [0; n], найти минимальный элемент в каждом столбце и заменить его на номер данного столбца. На языке Си
Программа получает на вход натуральное число, затем подсчитывает сумму его цифр и определяет наименьшую из всех цифр, кроме первой. В соответствии с условием задачи требуется найти наибольшее четырехзначное число, сумма цифр которого равна 29, а наибольшая из трех последних цифр не превышает 7. Итак, одна из цифр числа известна - это 7. Тогда сумма остальных трех цифр равна 29-7=22, причем две из этих цифр не могут быть меньше 7. Полагаем, что они равны 7 с тем, чтобы получить наибольшую допустимую первую цифру. Получаем 22-7х2=8, т.е. число должно быть равно 8777. ответ: 8777
a: array [1..20] of integer; {объявляем целочисленный массив на 20 элементов}
i, min, t, m: integer; {i - счетчик, min - минимум, t, m - временные переменные}
begin
{рандом 20 чисел в диапазоне [-20;12]}
randomize;
for i:=1 to 20 do
a[i]:=random(33)-20;
min:=a[1]; //присваиваем минимуму первый элемент.
{цикл начинается с 2, чтобы не делать лишнюю итерацию}
for i:=2 to 20 do
begin
{если минимум больше текущего значения элемента массива, то минимуму присваивается это значение и запоминаем его индекс, чтобы в дальнейшем поменять минимальный элемент с последним.}
В соответствии с условием задачи требуется найти наибольшее четырехзначное число, сумма цифр которого равна 29, а наибольшая из трех последних цифр не превышает 7.
Итак, одна из цифр числа известна - это 7. Тогда сумма остальных трех цифр равна 29-7=22, причем две из этих цифр не могут быть меньше 7. Полагаем, что они равны 7 с тем, чтобы получить наибольшую допустимую первую цифру. Получаем 22-7х2=8, т.е. число должно быть равно 8777.
ответ: 8777
Язык: Pascal.
var
a: array [1..20] of integer; {объявляем целочисленный массив на 20 элементов}
i, min, t, m: integer; {i - счетчик, min - минимум, t, m - временные переменные}
begin
{рандом 20 чисел в диапазоне [-20;12]}
randomize;
for i:=1 to 20 do
a[i]:=random(33)-20;
min:=a[1]; //присваиваем минимуму первый элемент.
{цикл начинается с 2, чтобы не делать лишнюю итерацию}
for i:=2 to 20 do
begin
{если минимум больше текущего значения элемента массива, то минимуму присваивается это значение и запоминаем его индекс, чтобы в дальнейшем поменять минимальный элемент с последним.}
if min > a[i] then
begin
min:=a[i];
m:=i;
end;
end;
{выводим старый массив}
Writeln('Старый массив:');
for i:=1 to 20 do
writeln(a[i]);
{меняем местами последний элемент с минимальным}
t:=a[20];
a[20]:=min;
a[m]:= t;
{выводим новый массив}
Writeln('Новый массив:');
for i:=1 to 20 do
writeln(a[i]);
end.