Marbles - wrong answer

can you plz find the error

#include

using namespace std;
long long int fac(long int n)
{
if(n==0)
return 1;
else
return (n*fac(n-1));
}

long long nCr(int n,int k);

int main()
{
int numTests;
cin>>numTests;
for(int i=0;i<numTests;i++)
{
int n,k;
cin>>n>>k;
cout<<nCr(n-1,k-1)<<endl;
}
return 0;
}

long long nCr(int n,int k)
{

if(k==0||n==k)
{
    return 1;
}
if(n<k)
{
    return 0;
}
else
{
    if((n-k)<k)
    {
        k=n-k;
    }
    long long int a=1;
    for(int i=n;i>(n-k);i--)
    {
       a=a*i; 
    }
    return (a/fac(k));
}

}

fact and the last ncr function is correct