Witam
rozwiazuje takie zadanie:
Dla liczb całkowitych n i k, 0 <= k <= n <= 1000, wyznacz liczbę różnych k-elementowych podzbiorów zbioru n-elementowego. Liczby n i k będą dobrane tak, aby wynik nie przekroczył 1 000 000 000.
Nie wiem dlaczego mam przekroczony limit czasu wykorzystalem algorytm rekurencyjny z tego co wiem nie ma szybszego?
// Dwumiany.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int dwumian(int n, int k)
{
if(k==0||k==n)
{
return 1;
}
else
{
return ((dwumian(n-1,k-1))+(dwumian(n-1,k)));
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int t;
cin>>t;
while(t)
{
int a,b;
cin>>a>>b;
cout<<dwumian(a,b)<<endl;
t--;
}
cin.ignore();
getchar();
return 0;
}