Program obliczający symbol Newtona

Program obliczający symbol Newtona
Kuba Łagowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Czemu program nie wyświetla wyniku dla k!=n? Gdzie jest błąd?

Kopiuj
#include <iostream>
#include <cmath>

using namespace std;

int silniaN(int n)
{
	if (n==0)
		return 1;
	
	return silniaN(n-1)*n;
}

int silniaK(int k)
{
	if (k==0)
		return 1;
	
	return silniaK(k-1)*k;
}

int silniaNK(int n, int k)
{
	if((n-k)==0)
		return 1;
		
	return silniaNK(n-1, k-1)*(n-k);
}

int main()
{
	int n,k;
	cin >> n;
	cin >> k;	
	
	int licznik = silniaN(n);
	int mianownik = silniaK(k) * silniaNK(n, k);
	
	cout << licznik/mianownik;
	
	return 0;
}
lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Co niby ma liczyć silniaNK?
Przecież, jak Chcesz Symbol Newtona, to sobie Daj:
silnia(n) / (silnia(k) * silnia(n - k) ).
A ta metoda silniaNK to chyba jakiś blindspot:)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.