Program w c++
: 21 sierpnia 2007, 21:38
Jestem dopiero raczkujący w programowaniu, a ten program znalazłem w necie; więc zwracam się z prośbą o wyjaśnienie mi tego kodu co on robi. Tzn wiem że służy do obliczania symbolu Newtona. Ale nie kumam jak on to robi. Bo na symbol Newtona jest wzór n!/(k!(n-k)!. a tutaj oni to jakoś inaczej obliczają np w pętli for czemu jest "n-k+1"???
Z góry dziękuje.
Z góry dziękuje.
Kod: Zaznacz cały
#include <iostream.h>
#include <string.h>
#define MAXNK 100
#define MAXWYNIK 1000000000
int main(){
int t,a,b;
cin >> t; /* wczytaj liczbê testów */
while(t){
cin >> a;
cin >> b;
cout << newton(a,b) << endl;
t--;
}
return 0;
}
int newton(int n, int k)
{
double w= 1;
if (k>n/2)
k=n-k;
else k=k;
for (int i=n; i>=n-k+1; i--)
{
w=w*i;
}
for (int i=1; i<=k; i++)
{
w=w/i;
}
if (w>MAXWYNIK)
{
w=-1;
return w;
}
else
return w;
}