Помогите, пожалуйста. Что-то мои попытки бессмысленны. Язык Паскаль. Напишите программу,...

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

Помогите, пожалуйста. Что-то мои попытки бессмысленны. Язык Паскаль.
Напишите программу, которая определяет, сколько в матрице есть K -значных чисел, сумма цифр каждого из которых кратна R .

Входные данные: В первой строке записаны через пробел размеры матрицы: количество строк N и количество столбцов M ( 1 ≤ N , M ≤ 100 ). В следующих N строках записаны строки матрицы, в каждой – по M натуральных чисел, разделённых пробелами. Затем в отдельной строке вводятся числа K и R .

Выходные данные: Программа должны вывести одно число – количество K -значных чисел, сумма цифр каждого из которых кратна R .

Примеры:
входные данные:
5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
2 3
выходные данные:
5


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

// PascalABC.NET 3.0, сборка 1156 от 30.01.2016
begin
  var n,m:integer;
  Read(n,m);
  var a:array[,] of integer;
  SetLength(a,n,m);
  for var i:=0 to n-1 do
    for var j:=0 to m-1 do Read(a[i,j]);
  var k,r:integer;
  Read(k,r);
  var p:=0; //будущий результат
  foreach var x:integer in a do begin
    var s:=0; var q:=x; var k1:=0;
    while q<>0 do begin
      s:=s+(q mod 10); q:=q div 10; Inc(k1)
      end;
    if (k1=k) and (s mod r = 0) then Inc(p)
    end;
  Writeln(p)
end.

Тестовое решение:
5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
2 3
5

(142k баллов)