** уроке информатики Васе поручили написать программу, заполняющую массив 2003 ** 2016...

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

На уроке информатики Васе поручили написать программу, заполняющую массив 2003 на 2016 последовательными числами от 1 до 2003⋅⋅2016 по горизонталям, а Пете — по вертикалям (примеры заполнения таблицы 4×64×6 по горизонталям и вертикалям показаны на рисунке).

Теперь ребят интересует такой вопрос: а сколько клеток в таблице 2003 на 2016 таковы, что и у Васи и у Пети в них стоят одни и те же числа?
Например, для таблицы 4×64×6, изображенной на рисунке, таких клеток две — они отмечены серым цветом, в них стоят числа 1 и 24.
В качестве ответа укажите одно целое число — искомое количество клеток.


image
image

Информатика (31 баллов) | 27 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//PascalABC.NET версия 3.2, сборка 1417
//Если программа не запускается, то обновите версию
begin
    var n := 2003;
    var m := 2016;
    var a := MatrGen(n, m, (i, j)-> i + 1 + n * j);
    var b := MatrGen(n, m, (i, j)-> j + 1 + m * i);
    
    var k := 0;
    for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
        for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
            if a[i, j] = b[i, j] then begin
                k += 1;
                Println(i + 1, j + 1, a[i, j]);
            end;
    
    //    a.Println();
    //    writeln;
    //    b.Println();
    writeln(k);
end.

Вывод
1 1 1
156 155 310620
311 309 621239
466 463 931858
621 617 1242477
776 771 1553096
931 925 1863715
1086 1079 2174334
1241 1233 2484953
1396 1387 2795572
1551 1541 3106191
1706 1695 3416810
1861 1849 3727429
2016 2003 4038048
14

Ответ 14

(55.0k баллов)