14.03.2023

Найти число пар соседних элементов массива, оканчивающихся нулем. Язык Паскаль. PascalABC.NET

 В этой публикации разберем задачу о парах соседних элементов массива.

Задача. В массиве целых чисел из N элементов найти число пар соседних элементов массива, оканчивающихся нулем.

Пусть дан массив a из 5 элементов:

4, 10, 20, 80, 10

Все пары соседних элементов это:

4 и 10

10 и 20

20 и 80

80 и 10

Три пары соседних элементов, в которых оба числа оканчиваются на 0.

Если ввести нумерацию ячеек с 1, то обращение к парам будет таким:

a[1] и a[2]

a[2] и a[3]

a[3] и a[4]

a[4] и a[5]

Заметим, что всего пар соседних элементов четыре.

Если всего элементов в массиве будет 6, то пар будет 5.

В общем случае если число элементов массива N, то пар соседних элементов N-1.

Если ввести счетчик пар k, то обращение к парам будет таким:

a[k] и a[k+1]

Чтобы обратиться ко всем парам, нужно запустить цикл по всем парам, то есть от первой до последней:

for k:=1 to N-1 do

Как будем решать задачу

  • Сформируем массив целых чисел из N элементов случайным образом (возьмем диапазон от 10 до 30)
  • Выведем массив
  • Обратимся ко всем парам соседних элементов массива и будем узнавать, каждое ли число из пары оканчивается цифрой 0, если да, то будем копить счетчик искомых пар p.

if (a[k] mod 10 = 0) and (a[k+1] mod 10=0) then p:=p+1;

Публикация про последнюю цифру числа (читать).

Программа решения задачи на языке Паскаль

var a:array[1..100] of integer;

    k,p,N:integer;

begin

  print('Введите количество элементов массива:');

  readln(N);

  for k:=1 to N do

  begin

    a[k]:=random(10,30);

    print(a[k]);

  end;

  println;

  p:=0;

  for k:=1 to N-1 do

  begin

    if (a[k] mod 10 = 0) and (a[k+1] mod 10=0) then p:=p+1;

  end;

  print('количество пар соседних элементов, оканчивающихся цифрой 0:',p);

end.

Результат запуска программы

Пары соседних элементов массива, оканчивающихся цифрой 0

В нашем примере получилось две пары, это числа 10 и 10, 20 и 30.

Для проверки можно выводить все пары соседних элементов:

for k:=1 to N-1 do

  begin

    println(a[k],a[k+1]);

    if (a[k] mod 10 = 0) and (a[k+1] mod 10=0) then p:=p+1;

  end;

Пары соседних элементов массива

Комментариев нет:

Отправить комментарий