Статья Автор: Лебедев Дмитрий

TUZ_2-06 Ближайшее s - угольное число

TUZ_2-06 Ближайшее s - угольное число
Задача 50262

TUZ_2-06 Ближайшее s - угольное число
2.6. Ближайшее s - угольное число
Пусть s > 2 – положительное целое число, определяющее бесконечную последовательность s-угольных чисел (их еще называют фигурными числами), где i-й элемент представлен формулой  \(\frac{((s-2)\times i^2)-((s-4)\times i)}{2}\)
Напишите функцию, которая принимает число сторон (или углов, если хотите) s и положительное целое число n
и возвращает ближайшее s-угольное число. Если будет найдено два s-угольных числа, то функция должна вернуть наименьшее из них.
В табл. 2.6 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.6. Некоторые ожидаемые результаты для разных входных значений в задаче поиска ближайшего s?угольного числа
n, sides Ожидаемый результат
7, 8 8
1, 19 1
15, 18 18
87, 36 105

Алгоритм
Чтобы найти фигурное число с указанным числом сторон, ближайшее к заданному целому числу n, алгоритм выполняет вычисления в три этапа.
Сначала он вычисляет фигурное число для конкретного индекса i по формуле 2.4.
Затем использует двоичный поиск для определения индекса, соответствующего фигурному числу, ближайшему к n.
И наконец, для трех индексов, окружающих средний индекс и полученных посредством двоичного поиска, вычисляет абсолютную разность между фигурными числами и n и возвращает фигурное число, ближайшее к n.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать