В этой публикации разберем задачу о парах соседних элементов массива.
Задача. В массиве целых чисел из 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.
Результат запуска программы
В нашем примере получилось две пары, это числа 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;
Комментариев нет:
Отправить комментарий