Заметим, что числа образуют арифметическую прогрессию, а её сумма известна:
Поэтому два варианта программы: один вычисляет сумму накоплением, второй сразу определяет результат по формуле. Хороший пример того, что программист должен знать математику.
var n, i, s: integer;
begin Write('Введите натуральное число: '); Readln(n); if (n mod 2) = 0 then begin s := 0; for i := 1 to n do s := s + i; Writeln('Сумма чисел от 1 до ', n, ' равна ', s) end else Writeln('Введено нечетное число') end.
Тестовое решение:
Введите натуральное число: 8 Сумма чисел от 1 до 8 равна 36
var n, s: integer;
begin Write('Введите натуральное число: '); Readln(n); if (n mod 2) = 0 then Writeln('Сумма чисел от 1 до ', n, ' равна ', ((1 + n) * n) div 2) else Writeln('Введено нечетное число') end.
Тестовое решение:
Введите натуральное число: 8 Сумма чисел от 1 до 8 равна 36
// 10. var n: integer; begin read(n); Write((n div 100 mod 2 = 0) or (n mod 10 mod 2 = 0) or (n mod 100 div 10 mod 2 = 0)); end.
// 11. var n: integer; a,b,c:integer; begin read(n); a:=n div 100; b:=n mod 100 div 10; c:=n mod 10; Write((a+b=c)or(a+c=b)or(c+b=a)); end.
// 12. var n: integer; a,b,c,d:integer; begin read(n); a:=n div 1000; b:=n mod 1000 div 10 div 10; c:=n mod 100 div 10; d:=n mod 10; Write(a+b+c+d-1=a*b*c*d); end.
// 13. var n,k: integer; a,b,c:integer; begin Write('n,k= '); read(n,k); a:=n div 100; b:=n mod 100 div 10; c:=n mod 10; Write((b+c<k)and(a>5)); end.
Поэтому два варианта программы: один вычисляет сумму накоплением, второй сразу определяет результат по формуле. Хороший пример того, что программист должен знать математику.
var
n, i, s: integer;
begin
Write('Введите натуральное число: ');
Readln(n);
if (n mod 2) = 0 then
begin
s := 0;
for i := 1 to n do s := s + i;
Writeln('Сумма чисел от 1 до ', n, ' равна ', s)
end
else Writeln('Введено нечетное число')
end.
Тестовое решение:
Введите натуральное число: 8
Сумма чисел от 1 до 8 равна 36
var
n, s: integer;
begin
Write('Введите натуральное число: ');
Readln(n);
if (n mod 2) = 0 then
Writeln('Сумма чисел от 1 до ', n, ' равна ', ((1 + n) * n) div 2)
else Writeln('Введено нечетное число')
end.
Тестовое решение:
Введите натуральное число: 8
Сумма чисел от 1 до 8 равна 36
var
n: integer;
begin
read(n);
Write((n div 100 mod 2 = 0) or (n mod 10 mod 2 = 0) or (n mod 100 div 10 mod 2 = 0));
end.
// 11.
var
n: integer;
a,b,c:integer;
begin
read(n);
a:=n div 100; b:=n mod 100 div 10; c:=n mod 10;
Write((a+b=c)or(a+c=b)or(c+b=a));
end.
// 12.
var
n: integer;
a,b,c,d:integer;
begin
read(n);
a:=n div 1000; b:=n mod 1000 div 10 div 10; c:=n mod 100 div 10; d:=n mod 10;
Write(a+b+c+d-1=a*b*c*d);
end.
// 13.
var
n,k: integer;
a,b,c:integer;
begin
Write('n,k= '); read(n,k);
a:=n div 100; b:=n mod 100 div 10; c:=n mod 10;
Write((b+c<k)and(a>5));
end.