1. "Школьное решение"
function f(n:integer):real;
var
p:real;
i:integer;
begin
p:=1;
for i:=1 to n do p:=p*i;
f:=p
end;
var
x,y,z:integer;
begin
Write('Введите x,y,z через пробел: ');
Read(x,y,z);
Writeln((f(x)+f(y))*f(z))
end.
Примеры
Введите x,y,z через пробел: 8 12 5
57485030400
Введите x,y,z через пробел: 23 15 41
8.64815278005251E+71
2. Современное решение
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var f:integer->BigIinteger:=n->1.To(n).Aggregate(BigInteger(1),(x,y)->x*y);
var (x,y,z):=ReadInteger3('Введите x,y,z через пробел:');
Writeln((f(x)+f(y))*f(z))
end.
Примеры
Введите x,y,z через пробел: 8 12 5
57485030400
Введите x,y,z через пробел: 23 15 41
864815278005250908694716268480895614135710289321049211273216000000000000