Страница 1 из 1
Задача на Pascal'е. Про матрицу...
Добавлено: 27 мар 2008, 09:48
creble
Помогите решить задачу, не могу придумать алгоритм
Дана целочисленная квадратная матрица. Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы (оформить в виде процедуры).
Эта задача уже решалась на форуме, но на С, а я до него еще не дорос

Re: Задача на Pascal'е. Про матрицу...
Добавлено: 27 мар 2008, 11:44
Хыиуду
Для квадратной матрицы размера N элементы A[i,j] будут лежать на побочной диагонали, если i+j=const. Для каждой диагонали эта константа своя, она изменяется в пределах от 2 до 2N. При переборе нужно исключать константу N+1, потому что это сама побочная диагональ, а не параллельная ей.
Тупейший вариант выглядит так:
Код: Выделить всё
var i,j,cns: integer; sums: array[2..2*N] of integer;
begin
for cns:=2 to 2*N do
begin
if cns=N+1 then continue;
for i:=1 to N do
for j:=1 to N do
if i+j=cns then inc(sums[cns],abs(A[i,j])
end;
end;
После этого найти минимум в массиве sums. Это неоптимальный алгоритм, есть лучше.
Re: Задача на Pascal'е. Про матрицу...
Добавлено: 27 мар 2008, 12:10
creble
Большое спасибо! Я не заметил саму очевидность, что i+j=const

буду пробовать.