Cod sursa(job #2286533)
Utilizator | Bratosin David - Robert BatedCrayon | Data | 20 noiembrie 2018 14:23:12 |
---|---|---|---|
Problema | Numerele lui Stirling | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
using namespace std;
ifstream in("stirling.in");
ofstream out("stirling.out");
int s(int a, int b)
{
if(a==0 || b==0)
return 0;
if(a<b)
return 0;
if(a==1 && b==1)
return 1;
return s(a-1,b-1)-(a-1)*(s(a-1,b));
}
int S(int a, int b)
{
if(a==0 || b==0)
return 0;
if(a<b)
return 0;
if(a==1 && b==1)
return 1;
return S(a-1,b-1)+b*(S(a-1,b));
}
int main()
{
int T,i,x,n,m;
in>>T;
for(i=1; i<=T; i++)
{
in>>x>>n>>m;
if(x==1)
out<<s(n,m)<<'\n';
else
out<<S(n,m)<<'\n';
}
return 0;
}