Написать программу на паскале используя подпрограмму (функцию или процедуру), которая вычисляет факториал (x! +y! )*z! заранее !

natalijamatijch natalijamatijch    3   16.09.2019 20:20    0

Ответы
mrmistik41 mrmistik41  10.09.2020 10:20
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
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика