// PascalABC.NET 3.1, сборка 1218 от 12.04.2016 begin var n:=ReadInteger('n='); var s:=BigInteger(0); var p:=Biginteger(1); for var i:=1 to n do begin p*=i; s+=p end; Print(s) end.
Пусть *(n) - число звёздочек, которое выведет процедура f(n).
Так как f(n) всегда выводит 1 звёздочку, а если если n > 2 - то вызывает f(n - 1) и f(n - 2), то *(n) = 1 при n <= 2 *(n) = 1 + *(n - 1) + *(n - 2) при n > 2.
Пусть *(n) - число звёздочек, которое выведет процедура f(n).
Так как f(n) всегда выводит 1 звёздочку, а если если n > 2 - то вызывает f(n - 1) и f(n - 2), то *(n) = 1 при n <= 2 *(n) = 1 + *(n - 1) + *(n - 2) при n > 2.
begin
var n:=ReadInteger('n=');
var s:=BigInteger(0);
var p:=Biginteger(1);
for var i:=1 to n do begin p*=i; s+=p end;
Print(s)
end.
Тестовые решения
n= 5
153
n= 10
4037913
n= 50
31035053229546199656252032972759319953190362094566672920420940313