Можно ли в таблицу размером 3x3 так записать числа 3, 4, 5, 6, 7, 8, 9, 10, 11, чтобы...

0 голосов
29 просмотров

Можно ли в таблицу размером 3x3 так записать числа 3, 4, 5, 6, 7, 8, 9, 10, 11, чтобы произведение чисел первого рядка было равным произведению чисел первого столбца, произведение чисел второго рядка было равным произведению чисел второго столбца, и, наконец, произведение чисел третьего рядка было равным произведению чисел третьего столбца?
Помогите, пожалуйста.


Математика (27 баллов) | 29 просмотров
Дан 1 ответ
0 голосов

Можно, например, так:
 11 10  4
  5  9  6
  8  3  7

Всего есть 72 решения данной задачи.

uses math;

var a,b,c,d,e,f,g,h,i: integer;
var matrix: array [1..9] of integer;
var counter: integer;

procedure check_matrix();
label repeated;
var i:integer;
var storage: array [1..9] of integer;
begin
        for i := 1 to 9 do begin
                storage[i] := 0;
        end;

        for i := 1 to 9 do begin
                if storage[matrix[i] - 2] <> 0 then begin
                        goto repeated;
                end;
                storage[matrix[i] - 2] := 1;
        end;

        if (matrix[2] * matrix[3] = matrix[4] * matrix[7]) and (matrix[4] * matrix[6] = matrix[2] * matrix[8]) and (matrix[7] * matrix[8] = matrix[3] * matrix[6]) then begin
                writeln('', matrix[1]:3, '', matrix[2]:3, '', matrix[3]:3);
                writeln('', matrix[4]:3, '', matrix[5]:3, '', matrix[6]:3);
                writeln('', matrix[7]:3, '', matrix[8]:3, '', matrix[9]:3);
                writeln();
                counter := counter + 1;
        end;

        repeated:;
end;

begin

counter := 0;

for a:=1 to 9 do begin
matrix[1] := a + 2;
for b:=1 to 9 do begin
matrix[2] := b + 2;
for c:=1 to 9 do begin
matrix[3] := c + 2;
for d:=1 to 9 do begin
matrix[4] := d + 2;
for e:=1 to 9 do begin
matrix[5] := e + 2;
for f:=1 to 9 do begin
matrix[6] := f + 2;
for g:=1 to 9 do begin
matrix[7] := g + 2;
for h:=1 to 9 do begin
matrix[8] := h + 2;
for i:=1 to 9 do begin
matrix[9] := i + 2;

check_matrix();

end; end; end; end; end; end; end; end; end;

writeln('total: ', counter);

end.


(9.2k баллов)