В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Rasul101231
Rasul101231
20.01.2023 09:35 •  Информатика

Используя бинарный поиск, найти порядковый номер элемента, который равен разности первого элемента массива с последним.в динамическом массиве через паскаль

Показать ответ
Ответ:
bigman4
bigman4
03.10.2020 22:21
Var a:array of integer;
n,i,p,i1,i2: integer;
begin
write('n = ');
readln(n);
SetLength(a,n);
Randomize;
a[0]:=random(50)+100;
write(a[0]:4);
for i:=1 to n-1 do
 begin
 a[i]:=a[i-1]-random(11);
 write(a[i]:4);
 end;
writeln;
p:=a[0]-a[n-1];
writeln('p = ',p);
i1:=0; i2:=n-1; 
repeat
i:=(i1+i2) div 2;
if a[i]>p then i1:=i1+1;
if a[i]<p then i2:=i2-1;
until (a[i]=p)or(i1>=i2);
if a[i]=p 
 then writeln('i = ',i) 
 else writeln('Искомого элемента нет');
end.

Пример:
n = 20
 142 139 135 129 120 120 120 113 107 106 104  99  89  88  81  72  71  70  60  54
p = 88
i = 13
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота