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
Код будет выполняться до тех пор, пока а < 100.
1 выполнениеa:=2*a-4 = 2 * 12 – 4 = 20
k:=k+1 = 1 + 1 = 2
2 выполнениеa:=2*a-4 = 2 * 20 – 4 = 36
k:=k+1 = 2 + 1 = 3
3 выполнениеa:=2*a-4 = 2 * 36 – 4 = 68
k:=k+1 = 3 + 1 = 4
4 выполнениеa:=2*a-4 = 2 * 68 – 4 = 132 // Это уже не выполнится, т.к. противоречит условию!
k:=k+1 = 4 + 1 = 5
ответ: а: = 68; k: = 4.