Форум » Циклы и ветвления » [B3] №5 » Ответить

[B3] №5

PavelG: Здравствуйте. Решая данную задачу столкнулся с некоторыми трудностями . Формула суммы n членов арифметической прогрессии никак не помогла, поэтому решить удалось только ручной прокруткой(насчитал необходимую величину). Но если бы условие было, например, s<1000 или ещё больше, то как можно оптимально решить данную задачку в этом случае? Спасибо. var k, s: integer; begin s:=0; k:=0; while s < 100 do begin s:=s+k; k:=k+4; end; write(k); end.

Ответов - 10

Поляков: PavelG пишет: Формула суммы n членов арифметической прогрессии никак не помогла Плохо, что не помогла. Возьмем условие s<10000. Формула суммы Sn=(2a1+d(n-1))*n/2. В данном случае a1=0 и d=4. Получаем Sn=2n2 - 2n Цикл останавливается, когда Sn >= 10000. Решаем неравенство 2n2 - 2n >= 10000. Получаем (для целых положительных значений) n >= 72. Так как шаг изменения k равен 4, последнее значение k = 72*4 = 288.

PavelG: А n получаем путём подбора?

Поляков: PavelG пишет: А n получаем путём подбора? Это к математикам. Решение квадратных неравенств.


PavelG: Понятно, спасибо большое за пояснения.

aleks103: не могли вы разобрать вот это задание var k, s: integer; begin s:=0; k:=1; while s < 66 do begin k:=k+3; s:=s+k; end; write(k); end. n получается 7, а дальше не знаю что делать

tavabar: aleks103 пишет: n получается 7 Здесь вообще нет n....

tavabar: aleks103 пишет: получается 7, а дальше не знаю что делать По моим подсчетам К получает значения 4,7,10,13,16,19. S, соответственно, получает значения 4,11,21,34,47,66. Последнее значение К это ответ (19). Как вы рассуждали, что получили 7?

aleks103: s<66. Формула суммы Sn=(2a1+d(n-1))*n/2 a1=1 и d=3 3n2 - n >=132 n >=7 k = 7*3=21 а ответ 19 хотелось бы без ручной трассировки

azoller: Что-то я все равно не понял, как решать такого типа задания. При решении ведь получаются очень неудобные числа с дробными частями. Нужно всегда к большему округлять?

Поляков: azoller пишет: При решении ведь получаются очень неудобные числа с дробными частями. Нужно всегда к большему округлять? Можно решать подбором, обычно числа небольшие.



полная версия страницы