Какие из приведенных ниже подпрограмм вычисляют биномиальный коэффициент (Сnk = n!/k!(n-k)!)
определяемый следующим образом: Сnk = 0, если k > n;Сnk = 1, если k = 0 или k = n;Сnk = Сn-1k + Сn-1k-1 в остальных случаях.
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Варианты ответа
function f(c:longint):longint;var a: array[1..1000]of longint; i: integer;begin a[1]:= 1; a[2]:= 1; for i:= 3 to c do a[i]:= a[i-1]+a[i-2]; f:= a[c]end;
f(n,k:longint):longint;var a: array[0..nnn]of longint; i,j,t,tt: longint;begin if k>n then f:= 0 else if (k=n)or(k=0) then f:= 1 else begin a[0]:= 1; a[1]:= 1; for i:= 2 to k do a[i]:= 0; for i:= 2 to n do begin t:= 1; for j:= 1 to i-1 do begin tt:= a[j]+t; t:= a[j]; a[j]:= tt; end; a[i]:= 1; end end; f:= a[k]end;(Верный ответ)
function f(c:longint):longint;begin if c =1 then f:= 1 else f:= f(c-1)+f(c-2)end;
function f(n,k:longint):longint;var ff: longint;begin if (k=0)or(k=n) then f:= 1 else if k>n then f:= 0 else begin ff:= f(n-1,k-1)+f(n-1,k); f:= ff end;end;(Верный ответ)