Произведение ненулевых диагональных элементов

Задача

В квадратной матрице найти произведение ненулевых диагональных элементов.

Решение

 

Сначала перемножаются ненулевые элементы главной диагонали. К главной диагонали относятся элементы, индексы которых равны.
Потом перемножаются элементы побочной диагонали. Если в матрице нечетная размерность, то один из элементов входит как в главную, так и побочную диагональ. Поэтому здесь его надо исключить из произведения, как и нулевые элементы. У этого элемента индексы будут равны, в то время как у всех других элементов побочной диагонали индексы не равные.

Программа на языке Паскаль: 

 

const N = 7;
var
    a: array[1..N,1..N] of word;
    i, j: byte;
    mult: word;
begin
    randomize;
    for i:=1 to N do begin
        for j:=1 to N do begin
            a[i][j] := random(5);
            write(a[i][j]:4);
        end;
        writeln;
    end;
    mult := 1;
    for i:=1 to N do 
        if a[i][i] <> 0 then
            mult := mult * a[i][i];
    for i:=1 to N do
        if (a[i][N-i+1] <> 0) and (i <> N-i+1) then
            mult := mult * a[i][N-i+1];
    writeln(mult);        
end.

 

Пример выполнения программы:

   3   2   3   3   4   0   1
   3   1   3   3   4   2   3
   3   3   1   3   1   1   1
   2   1   0   2   3   2   3
   2   0   3   4   1   1   2
   1   0   2   0   3   2   2
   2   3   1   4   2   1   0
144

 

Тема

Матрицы

Уровень

Сложные задачи

Добавить комментарий