
Напишите программу, которая заполняет массив из N элементов случайными целыми числами в диапазоне [
A , B ] и определяет номера двух элементов этого массива, которые расположены ближе всех друг к другу на числовой оси. Эти элементы не обязательно должны быть расположены рядом друг с другом. Если таких пар несколько, нужно вывести номера элементов самой последней из таких найденных пар. Входные данные Входная строка содержит три числа: границы диапазона случайных чисел A и B , а также размер массива N . Все числа разделены пробелами. Гарантируется, что 0 < N ≤ 10000 .

Ответы на вопрос

n = 50;// количество чиселvar
k: array [1..n] of integer;
i, j, n1, n2, minr, A, B: integer;begin
writeln(n, ' ', ':D');
A := random(1000);
B := random(1000);
minr := 10000;
for i := 1 to n do
k[i] := A + random(B);
for i := 1 to n do
for j := 1 to n do
if ((abs(k[i] - k[j])) < minr) and (k[i] <> k[j]) then
begin
minr := abs(k[i] - k[j]);
n1 := i;
n2 := j;
end;
writeln(n1, ' ', n2);
end.



Для решения данной задачи можно использовать следующий алгоритм:
1. Считываем границы диапазона A и B, а также размер массива N из входной строки. 2. Создаем пустой массив размером N. 3. Заполняем массив случайными целыми числами из диапазона [A, B]. 4. Инициализируем переменные minDiff и minIndex1, minIndex2 значением "бесконечность". 5. Проходим по всем парам элементов массива (i, j), где i < j. 6. Вычисляем разницу между элементами arr[i] и arr[j] и сохраняем ее в переменную diff. 7. Если diff меньше minDiff, то обновляем значения minDiff, minIndex1 и minIndex2. 8. После завершения цикла, выводим значения minIndex1 и minIndex2.
Пример реализации данного алгоритма на языке Python:
```python import random
# Считываем входные данные A, B, N = map(int, input().split())
# Создаем массив arr = [random.randint(A, B) for _ in range(N)]
# Инициализируем переменные minDiff = float('inf') minIndex1 = -1 minIndex2 = -1
# Выполняем перебор всех пар элементов массива for i in range(N): for j in range(i+1, N): # Вычисляем разницу между элементами diff = abs(arr[i] - arr[j]) # Обновляем значения minDiff, minIndex1 и minIndex2 if diff < minDiff: minDiff = diff minIndex1 = i minIndex2 = j
# Выводим номера элементов с минимальной разницей print(minIndex1, minIndex2) ```
Пример работы программы:
Входные данные: -10 10 5
Выходные данные: 0 3
В данном примере массив размером 5 заполняется случайными целыми числами из диапазона [-10, 10]. После этого находится пара элементов с минимальной разницей, которая равна 0 и 3.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili