Автор | Сообщение |
|
Отправлено: 29.03.12 08:28. Заголовок: [B3] №5
Здравствуйте. Решая данную задачу столкнулся с некоторыми трудностями . Формула суммы 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
[только новые]
|
|
|
| Администратор
|
Сообщение: 236
|
|
Отправлено: 29.03.12 08:58. Заголовок: PavelG пишет: Формул..
PavelG пишет: цитата: | Формула суммы n членов арифметической прогрессии никак не помогла |
|
Плохо, что не помогла. Возьмем условие s<10000. Формула суммы S n=(2a 1+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.
|
|
|
|
Отправлено: 29.03.12 09:21. Заголовок: А n получаем путём п..
А n получаем путём подбора?
|
|
|
|
| Администратор
|
Сообщение: 237
|
|
Отправлено: 29.03.12 09:34. Заголовок: PavelG пишет: А n по..
PavelG пишет: цитата: | А n получаем путём подбора? |
|
Это к математикам. Решение квадратных неравенств.
|
|
|
|
Отправлено: 29.03.12 09:35. Заголовок: Понятно, спасибо бол..
Понятно, спасибо большое за пояснения.
|
|
|
|
Отправлено: 17.05.12 18:55. Заголовок: не могли вы разобрат..
не могли вы разобрать вот это задание 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, а дальше не знаю что делать
|
|
|
|
| постоянный участник
|
Сообщение: 75
|
|
Отправлено: 17.05.12 19:04. Заголовок: aleks103 пишет: n п..
aleks103 пишет: Здесь вообще нет n....
|
|
|
|
| постоянный участник
|
Сообщение: 79
|
|
Отправлено: 18.05.12 15:40. Заголовок: aleks103 пишет: пол..
aleks103 пишет: цитата: | получается 7, а дальше не знаю что делать |
| По моим подсчетам К получает значения 4,7,10,13,16,19. S, соответственно, получает значения 4,11,21,34,47,66. Последнее значение К это ответ (19). Как вы рассуждали, что получили 7?
|
|
|
|
Отправлено: 18.05.12 15:02. Заголовок: в смысле к..
s<66. Формула суммы Sn=(2a1+d(n-1))*n/2 a1=1 и d=3 3n2 - n >=132 n >=7 k = 7*3=21 а ответ 19 хотелось бы без ручной трассировки
|
|
|
|
Отправлено: 07.06.12 19:07. Заголовок: Что-то я все равно н..
Что-то я все равно не понял, как решать такого типа задания. При решении ведь получаются очень неудобные числа с дробными частями. Нужно всегда к большему округлять?
|
|
|
|
| Администратор
|
Сообщение: 400
|
|
Отправлено: 12.06.12 19:15. Заголовок: azoller пишет: При р..
azoller пишет: цитата: | При решении ведь получаются очень неудобные числа с дробными частями. Нужно всегда к большему округлять? |
|
Можно решать подбором, обычно числа небольшие.
|
|
|
|