Вычислить сумму 1+2+3... Ложить до тех пор пока сумма не станет
Вычислить сумму 1+2+3... Ложить до тех пор пока сумма не станет больше 1000. Вывести сумму и заключительнее прибавленное число
Напишите математическую модель, схему и программный код.
1 ответ
Степан Чентимиров
1. Строим математическую модель
1+2+3+... - это арифметическая прогрессия с разностью d, одинаковой единице и первым членом a=1.
Сумма n первых членов арифметической прогрессии может быть найдена по формуле S=(2a+d(n-1))*n/2.
В нашем случае формула упрощается: S = (2+1(n-1))n/2 = n(n+1)/2
По условию члены прогрессии суммируются, пока сумма не превзойдет 1000.
Тогда 0.5n(n+1)gt;1000
n(n+1)gt;2000; n+n-2000gt;0
Найдем малое n, удовлетворяющее этому условию.
n+n+2000=0; D=1+8000=8001; D 89.4
n=0.5(-1-89.4) lt; 0 - не устраивает, так как ngt;1
n=0.5(-1+89.4) =44.2
Принимаем n=45.
Сумма составит 45(45+1)/2=1035, а заключительный член равен n, т.е .45
Неясно, для чего нам составлять программку. Пусть для того, чтоб проверить наше решение, поэтому выберем другой метод.
Будем поочередно наращивать сумму 1+2+3+4 до превышения ей значения 1000. Решение, что называется, "в лоб".
2. Блок-схема приведена во вложении.
3. Программа
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (s,i):=(0,1);
while true do begin
s+=i;
if sgt;1000 then begin
Writeln('S=',s,', последний член ',i);
exit
end;
i+=1
end
end.
Результат
S=1035, заключительный член 45
1+2+3+... - это арифметическая прогрессия с разностью d, одинаковой единице и первым членом a=1.
Сумма n первых членов арифметической прогрессии может быть найдена по формуле S=(2a+d(n-1))*n/2.
В нашем случае формула упрощается: S = (2+1(n-1))n/2 = n(n+1)/2
По условию члены прогрессии суммируются, пока сумма не превзойдет 1000.
Тогда 0.5n(n+1)gt;1000
n(n+1)gt;2000; n+n-2000gt;0
Найдем малое n, удовлетворяющее этому условию.
n+n+2000=0; D=1+8000=8001; D 89.4
n=0.5(-1-89.4) lt; 0 - не устраивает, так как ngt;1
n=0.5(-1+89.4) =44.2
Принимаем n=45.
Сумма составит 45(45+1)/2=1035, а заключительный член равен n, т.е .45
Неясно, для чего нам составлять программку. Пусть для того, чтоб проверить наше решение, поэтому выберем другой метод.
Будем поочередно наращивать сумму 1+2+3+4 до превышения ей значения 1000. Решение, что называется, "в лоб".
2. Блок-схема приведена во вложении.
3. Программа
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (s,i):=(0,1);
while true do begin
s+=i;
if sgt;1000 then begin
Writeln('S=',s,', последний член ',i);
exit
end;
i+=1
end
end.
Результат
S=1035, заключительный член 45
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов