Консультация № 137703
21.05.2008, 01:14
0.00 руб.
0 2 2
Найти сумму положительных кратных 7 чисел, меньших 100

использовать Pascal turbo 7.0

Обсуждение

Неизвестный
21.05.2008, 10:28
общий
это ответ
Здравствуйте, Артемий Тотктонада!

Программа в приложении.
Желаю удачи!

Приложение:
Program Pr137703; Uses CRT; Var i, Sum: Integer;Begin ClrScr; Sum := 0; for i := 1 to 100 do if i mod 7 = 0 then Sum := Sum + i; WriteLn(‘Сумма чисел от 1 до 100, кратных 7, равна ‘, Sum); ReadLn;End.
Неизвестный
21.05.2008, 20:20
общий
это ответ

<i>Здравствуйте, <b>Артемий Тотктонада</b>!</i>

Для нахождения данной суммы нет необходимости перебирать все положительные числа, меньших 100 (1..100).

В приложении находится пример с двумя вариантами нахождения суммы, оба без полного перебора всех 100 чисел.

Первый вариант заключается в переборе и сложении всех чисел кратных 7 из диапазона 7..100.

Поясняю второй вариант более детально:
Сумма всех положительных чисел, кратных 7, меньших 100 равно:
<code>7 + 14 + 21 + ... + 98</code>

что, в свою очередь, равно
<code>(1 + 2 + 3 + ... + 14)*7</code>

Как видите, в скобках находится арифметическая прогрессия от 1 до 14 с шагом 1. Если подставить формулу нахождения суммы арифметической прогрессии, то получаем:
<code>7*(1+14)*14/2</code>

Если разделить 100 на 7, отбросив при этом дробную часть, то получим количество чисел, кратных семи, т.е. 14.
<code>i:= 100 div 7;
summ:= 7*(1+i)*i <b>div</b> 2;</code>

Таким образом и получена формула суммы всех чисел, кратных семи.

<em>Удачи!</em>

Приложение:
program q137701;uses Crt;var i, summ: Integer;begin {Очистка экрана} ClrScr; {######Вариант 1 ######} i:= 7; summ:= 0; while (i < 100) do begin {Прибавляем к сумме i} Inc(summ, i); {Увеличиваем i на 7} {Т.е. переходим к следующему числу, кратному 7} Inc(i, 7); end; {Выводим результат} writeln(‘summ = ‘, summ); {###### Вариант 2 ######} {Находим количество чисел, кратных 7} i:= 100 div 7; {Находим сумму с помощью функции арифметической прогрессии} summ:= (1+i)*i*7 div 2; {Выводим результат} writeln(‘summ = ‘, summ); {Даем пользователю возможность насладиться результатом} writeln; write(‘Press any key...‘); readln;end.
Форма ответа