Напишите программу в последовательности натуральных чисел определить сумму чисел кратных 5

loli40 loli40    1   24.07.2019 13:00    0

Ответы
alinaochirovg19 alinaochirovg19  07.09.2020 19:21
Последовательность натуральных чисел бесконечно, поэтому также бесконечна будет искомая сумма. Для того, чтобы сделать задачу реальной, ограничимся n первыми членами последовательности, т.е. рядом чисел 1,2,3,..n.
В этом ряду первое число, кратное 5 - это 5. А дальше будем прибавлять по 5, пока не превысим числа n и все полученные числа складывать.

Вот очень короткое решение, написанное на самой современной версии языка Паскаль.

// PascalABC.NET 3.1, сборка 1211 от 31.03.2016
begin
  Writeln(Range(5,ReadInteger('n='),5).Sum)
end.

Результат выполнения программы:
n= 100
1050

А вот решение на классическом "школьном" Паскале

var
  i,n,s:integer;
begin
  Write('n='); Read(n);
  s:=0;
  i:=5;
  while i<=n do begin
    s:=s+i;
    i:=i+5
    end;
  Writeln(s)
end.

Можно без компьютера и программирования обойтись, если вспомнить об арифметической прогрессии.
\displaystyle a_1=5; \ d=5 \\ a_k=n; \ a_k=a_1+(k-1)d; \ n=5+(k-1)\cdot5=5k \to k= \frac{n}{5} \\ S= \frac{a_1+a_k}{2}\times k= \frac{5+n}{2}\times \frac{n}{5}=\boxed { \frac{n(n+5)}{10} }
Для нашего тестового примера получаем 100(100+5)/10=10*105=1050
ПОКАЗАТЬ ОТВЕТЫ
vasilyukandrey vasilyukandrey  07.09.2020 19:21
Вроде так,не люблю Pascal,хотя вы не указали на чём писать)

program name;
uses crt;
var i,s,n:integer;
       a: array [1..100] of integer;
begin
clrscr;
readln(n);
s:=0;
for i:=1 to n do begin
if a[i] mod 5= 0 then begin
s:=s+a[i];
end;
end;
writeln(s);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика