На уроке информатики Васе поручили написать программу, заполняющую массив 2001 на 2017 последовательными числами от 1 до 2001⋅⋅2017 по горизонталям, а Пете — по вертикалям (примеры заполнения таблицы 4×64×6 по горизонталям и вертикалям показаны на рисунке).
Теперь ребят интересует такой вопрос: а сколько клеток в таблице 2001 на 2017 таковы, что и у Васи и у Пети в них стоят одни и те же числа?
Например, для таблицы 4×64×6, изображенной на рисунке, таких клеток две — они отмечены серым цветом, в них стоят числа 1 и 24.
В качестве ответа укажите одно целое число — искомое количество клеток
Answers & Comments
Verified answer
Можно решить задачу и без использования массивов:const n=2001; m=2017;var
i,j,k:integer;
begin
k:=0;
for i:=1 to n do
for j:=1 to m do
if (i-1)*m+j=(j-1)*n+i then k:=k+1;
writeln(k);
end.
Результат:
17
Если хочется с массивами, то:
const n=4; m=6;
var
a,b:array[1..n,1..m] of integer;
i,j,k:integer;
begin
writeln('1 массив:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=(i-1)*m+j;
write(a[i,j]:4);
end;
writeln;
end;
writeln('2 массив:');
for i:=1 to n do
begin
for j:=1 to m do
begin
b[i,j]:=(j-1)*n+i;
write(b[i,j]:4);
end;
writeln;
end;
k:=0;
for i:=1 to n do
for j:=1 to m do
if a[i,j]=b[i,j] then k:=k+1;
writeln(k);
end.
Результат:
1 массив:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
2 массив:
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
2