Відповідь:
Профориентация
Школьникам
Взрослым
Студентам
Тесты
Список профессиий
FAQ
Статьи
Книги
Задать вопрос
ПрофГид
Профессии
Информационные технологии (IT)
Показаны записи 1-20 из 70.
Аналитик
Компьютерный лингвист
Инженер-программист
Архитектор интеллектуальных систем управления беспилотного транспорта
UI-дизайнер
UX-аналитик
UX-дизайнер
Художник компьютерной графики
Лингвоэксперт
Intelligent Systems Developer
Агроинформатик, агрокибернетик
Quant developer
Data Mining Specialist
BI разработчик (BI архитектор)
Программист Kotlin
Программист JavaScript
Программист C++
Биоинформатик
Архитектор информационных систем
Сценарист компьютерных игр
Пояснення:
2 + 4 + 6 + ... + 2k - арифметическая прогрессия, значит мы можем найти сумму этого ряда по формуле суммы арифметической прогрессии, вынесем это в отдельную функцию :
def sumN(first, last):
return (first + last) * ((last - first + 2) // 2) / 2
Дальше будем перебирать последний элемент для ряда, просто идти в цикле долго и глупо, поэтому зная, что функция суммы ряда из положительных чисел монотонно возрастающая, то найдем подходящий последний элемент, а значит и кол-во слагаемых с бинпоиска за логарифм вместо линии :
def sumN(first, last):
return (first + last) * ((last - first + 1) // 2) / 2
N = int(input())
l = 1
r = 100000
res = -1
while l <= r :
m = (l + r) // 2
F = 2
L = 2 * m
if sumN(F,L) > N :
res = m
r = m - 1
else :
l = m + 1
print(res)
полный код :
def sumN(first, last):
return (first + last) * ((last - first + 1) // 2) / 2
N = int(input())
l = 1
r = 100000
res = -1
while l <= r :
m = (l + r) // 2
F = 2
L = 2 * m
if sumN(F,L) > N :
res = m
r = m - 1
else :
l = m + 1
print(res)