Witam, dopiero zaczynam programować, więc co rusz napotykam się na problemy.
Teraz nie mam pojęcia dlaczego program nie zwraca mi wartości. W założeniu ma on liczyć ilość możliwych kombinacji w oparciu o wzór na symbol newtona. Pominąłem trochę liczenie silni (jak się liczy na kartce, to zwykle rozpisuje się licznik w celu skrócenia), aby można działać na trochę większych zbiorach. Proszę o pomoc, bo na prawdę nie wiem co jest nie tak.
#include<iostream>
using namespace std;
long factorials(int); //silnia
long combinations(int, int); //symbol newtona
int main()
{
cout << "Welcome to combinations computing" << endl;
cout << "Input n number: ";
int n;
cin >> n;
cout << "Input k number: ";
int k;
cin >> k;
cout << "There are " << combinations(n, k) << " possible capabilities." << endl;
system("PAUSE");
return 0;
}
long factorials(int n)
{
long factorial = 1;
for (int i = n; i > 1; i--)
factorial = factorial * i;
return factorial;
}
long combinations(int n, int k)
{
int i = n - k;
long numerator = 1;
for (int p = i + 1; p = n; p++)
numerator = numerator*p;
long combi;
combi = numerator / factorials(k);
return combi;
}