Калькулятор ( ів) Лабіринт атракціону побудовано у вигляді квадрата який складається з N*N сегментів. Кожен з сегментів може бути порожнім, або заповненим камінням. Гарантується, що лівий верхній і правий нижній сегменти порожні. Лабіринт огороджений зверху, зліва, справа і знизу стінами, які відсутні тільки в лівому верхньому і правому нижньому кутку. Директор атракціону вирішив пофарбувати стіни лабіринту які видно зсередини (див. малюнок). До ть йому створити калькулятор для розрахунку фарби необхідної для цього.
A:array[1..1000] of integer;
B:array[1..3] of integer;
i,N:integer;
Begin
Write('N = ');ReadLn(N);
For i:= 1 to N do
Begin
Read(A[i]);
if A[i] mod 2 <> 0 then B[1]:=B[1]+A[i];
if A[i] mod 2 = 0 then B[2]:=B[2]+A[i];
End;
WriteLn;
For i:= 1 to N do
Write(A[i],' ');
B[3]:=B[1]+B[2];
WriteLn('B[1] = ',B[1]);
WriteLn('B[2] = ',B[2]);
WriteLn('B[3] = ',B[3]);
End.
или так:
Var
A:array of integer;
B:array[1..3] of integer;
i,N:integer;
Begin
Write('N = ');ReadLn(N);
A:=new integer[N];
For i:= 0 to N-1 do
Begin
Read(A[i]);
if A[i] mod 2 <> 0 then B[1]:=B[1]+A[i];
if A[i] mod 2 = 0 then B[2]:=B[2]+A[i];
End;
WriteLn;
For i:= 0 to N-1 do
Write(A[i],' ');
B[3]:=B[1]+B[2];
WriteLn('B[1] = ',B[1]);
WriteLn('B[2] = ',B[2]);
WriteLn('B[3] = ',B[3]);
End.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
Writeln('Сумма четных: ',Range(2,n,2).Sum);
Writeln('Произведение нечетных: ',
Range(1,n,2).Aggregate(BigInteger(1),(p,q)->p*q))
end.
Примеры
n= 10
Сумма четных: 30
Произведение нечетных: 945
n= 100
Сумма четных: 2550
Произведение нечетных: 2725392139750729502980713245400918633290796330545803413734328823443106201171875
n= 220
Сумма четных: 12210
Произведение нечетных: 1107777077219218863731176870556049213277080310011307546922058816496685355705579762805879646585202270946781726057710274499420058851200005273702334889222745707797723907366146060509882690145022444427013397216796875