Witam
Napisałem program liczący dwumian Newtona (wg opisu z Wikipedii), ale dla danych 66 37 wynik jest o 2 za mały. Co może być tego przyczyną?
#include<iostream>
using namespace std;
long double newton(int n, int k);
int i, n, k;
int main()
{
cin >> i;
for(int l=0; l<i; l++)
{
cin >> n;
cin >> k;
cout << (unsigned long long int)newton(n,k) << "\n";
}
}
long double newton(int n, int k)
{
long double wynik;
wynik=1;
for(int i1=1; i1<=k; i1++) wynik=wynik*((long double)n-(long double)i1+1)/(long double)i1;
return wynik;
}
Z góry dzięki za odpowiedzi :)
Pozdrawiam