Определите, при каком наибольшем введённом значении переменной s программа
выведет число, больше 1000
s = int(input())
n = 4
while s <= 400:
s = s + 5
n = n + 8
print(n)

Ответы

Ответ дал: YungSnow
1

Ответ:

-220

Объяснение:

пользовался программой на Python'е

ans = -9999999

for i in range(-1000, 1000):

   s = i

   n = 4

   while s <= 400:

       s = s + 5

       n = n + 8

   if n > 1000:

       ans = max(ans, i)

print(ans)


etojan: Ладно бы ещё экспоненциальный поиск написал бы вместо линейного. Здесь же налицо непрерывность
Ответ дал: etojan
1

За каждую итерацию цикла n возрастает на 8. Нам нужно минимум 125 итераций, чтоб получить n > 1000, потому что 4 + 8*125 > 1000, а 4 + 8*124 < 1000. Можно и больше 125 итераций, об этом дальше

За каждую итерацию цикла s растёт на 5, пока не превысит 400. Нам нужно как минимум 125 итераций, как мы выяснили, а для этого стартовое значение s должно быть больше чем

400 - 5*125 = 400 - 625 = -225, но меньше или равно

400 - 5*124 = 400 - 620 = -220.

Ну и на отрезке (-225; -220] максимум найти несложно.

Если число итераций N будет больше 125, то больше будет разница 400 - 5*N , а значит меньше будет стартовое значение S, что нас не устраивает.

Ответ: -220

Вас заинтересует