Dwumian Newtona

0

Witam. Mam problem bo nie wiem juz co jest tu źle. Może ktoś mi podpowiedzieć?

program dwu_new;
uses crt;
var n,k,i:byte;
function silnia(n,k:byte):longint;
begin
  i:=1;
  silnia:=1;
  repeat
  silnia:=silnia*i;
  i:=i+1;
  until i>n;
end;
function dwumian(n,k:byte):longint;
begin
  dwumian:=silnia(n)/(silnia(k)*silnia(n-k));
end;
begin
writeln('Podaj liczbe n:');
readln(n);
writeln('Podaj liczbe k:');
readiln(k);
if k<=n then   
writeln('Dwumian Newtona= ',dwumian(n,k));
readln();
else
writeln('Podales zle parametry.');
readln();
end.
 
0

silnia przyjmuje u ciebie dwa parametry, zaś wywoływana jest z jednym.
Poza tym nie tędy droga, ponieważ dla n=200, k=199 już nie dasz rady poprawnie policzyć.

0

W tym wypadku funkcja musi mieć dwa parametry żeby policzyć dwumian newtona.. Jak poprawnie powinienem ja wywoływać?

Poza tym nie tędy droga, ponieważ dla n=200, k=199 już nie dasz rady poprawnie policzyć.
Program nie musi akurat w moim przypadku aż tak dokładnie obliczać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1