Phyton срочно пожалуйста
Дано ціле число N (>1). Вивести найбільше з цілих чисел K, для яких сума S = 1 + 2 + … + K буде меншою або дорівнює N, і саму цю суму.
Ответы на вопрос
Ответил gaga04
0
Асимптотика: что-то типа O(NlogN)
def f(n):
return n * (n + 1) // 2
def bs(n):
left = 0
right = n
while left < right:
mid = (left + right) // 2
now = f(mid)
if now <= n and f(mid + 1) > n:
return mid
if now > n:
right = mid - 1
else:
left = mid + 1
return left
k = bs(int(input()))
print(k, f(k), sep='\n')
gaga04:
да господи, когда тут станет можно нормально табуляции передавать в тексте?)
Новые вопросы
Алгебра,
1 год назад
Математика,
1 год назад
Математика,
1 год назад
География,
1 год назад
Русский язык,
6 лет назад