Напишите программу, вычисляющую сумму только тех чисел от 1 до N, которые делятся либо на три, либо на пять - Free Pascal
Формулировка задачи:
Задача: Напишите программу, вычисляющую сумму только тех чисел от 1 до N,
которые делятся либо на три, либо на пять
Вот такое получилось, вот только сумма всегда получается на 1 больше. Можно перед циклом присвоить "a" значение "-1", тогда все отлично, но это какое-то неправильное решение, знаете, будто не болезнь лечим, а симптом убираем
var N, i, a:integer;
begin
writeln('Введите любое число');
readln(N);
for a:=1 to N+1 do
if a mod 3=0 then
i:=i+a
else if a mod 3=0 then i:=i+a;
writeln(i);
readln
end.Решение задачи: «Напишите программу, вычисляющую сумму только тех чисел от 1 до N, которые делятся либо на три, либо на пять»
textual
Листинг программы
var
N, i, a: integer;
begin
writeln('Введите любое число');
readln(N);
i := 0;
for a := 1 to N do
if (a mod 3 = 0) or (a mod 5 = 0) then
begin
i := i + a;
end;
writeln;
writeln('Сума чисел делящихся или на 3, или на 5: ', i);
end.
Объяснение кода листинга программы
- Объявлены переменные N, i, a (N - число, i - счетчик суммы, a - текущее число)
- Пользователю предлагается ввести число (N)
- Цикл for a := 1 to N выполняет проверку для каждого числа от 1 до N
- Условие if (a mod 3 = 0) or (a mod 5 = 0) проверяет, делится ли число на 3 или 5 (или на оба)
- Если условие истинно, то к переменной i прибавляется значение переменной a
- После выполнения цикла выводится сумма чисел, которые делятся на 3 или 5