Есть ответ 👍

100БАЛЛОВ
напечатайте на C++
1)Реализуйте алгоритм приближенного бинарного поиска.

Входные данные
В первой строке входных данных содержатся числа N и K (0NK100001 ). Во второй строке задаются N чисел первого массива, отсортированного по неубыванию, а в третьей строке – K чисел второго массива. Каждое число в обоих массивах по модулю не превосходит 2109.

Выходные данные
Для каждого из K чисел выведите в отдельную строку число из первого массива, наиболее близкое к данному. Если таких несколько, выведите меньшее из них.
2)Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка определите номер первого и последнего появления этого числа в первом списке.

Входные данные
В первой строке входных данных записано два числа N и M (1NM20000 ). Во второй строке записано N упорядоченных по неубыванию целых чисел — элементы первого списка. В третьей строке записаны M целых неотрицательных чисел - элементы второго списка. Все числа в списках - целые 32-битные знаковые.

Выходные данные
Программа должна вывести M строчек. Для каждого числа из второго списка нужно вывести номер его первого и последнего вхождения в первый список. Нумерация начинается с единицы. Если число не входит в первый список, нужно вывести одно число 0.

300
500
Посмотреть ответы 2

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

Dream1155
4,7(44 оценок)

целые числа 32 принадлежит окружности 0 ответ 0


То, что написал alex - это не функция проверки признака делимости, а стандартная функция остатка от деления, которая тебе не подходит. признак делимости на 11 такой. нужно отдельно сложить цифры, стоящие на нечетных местах - 1, 3, 5, до конца, и отдельно цифры, стоящие на четных местах - 2, 4, 6, тоже до конца. потом вычитаешь из большего числа меньшее. если разность = 0 или делится на 11, то и все число делится на 11. я паскаль плохо знаю, поэтому опишу только алгоритм. 1) вводим начальное число n. 2) объявляем массив m[length(n)] длиной, равной количеству цифр числа. 3) делаем в цикле a : = n mod 10; m[i] : = a; n : = int(n / 10); i : = i+1; продолжаем цикл до тех пор, пока n > 0. 4) s1 : = 0; цикл от 1 до length(n) с шагом 2: s1 : = s1 + a[i]; 5) s2 : = 0; цикл от 2 до length(n) с шагом 2: s2 : = s2 + a[i]; 6) raznost : = abs(s1 - s2);   7) если raznost mod 11 = 0 тогда ответ да, иначе ответ нет. 8) конец

Популярно: Информатика