Witam!
Mam dziwny problem w zadaniu ze SPOJ, otóż działa ona na wszystkie sprawdzone przeze mnie sposoby, a ale gdy wysyłam kod wyskakuje mi błąd SIGFPE. Z wiki wiem, że jest to dzielenie przez zero, ale takie u mnie nie występuje. W kodzie mam jedno dzielenie które w żaden sposób nie może wyjść tak, żeby w liczniku pojawiło się 0.
Proszę o jakieś rady, co dalej. Korzystałem z debuggera i nic nie znalazłem.
#include <iostream>
#include <iomanip>
using namespace std;
int t,n,k;
long double a,silniak=1;
int main()
{
cin>>t;
while(t)
{
cin>>n>>k;
if(n<k)cout<<"0"<<endl;
else
{
for(int i=1; i<=k; i++)
{
silniak=silniak*i;
}
a=n-k;
a=a+1;
for(int i=a+1;i<=n;i++)
{
a=a*i;
}
cout<<setprecision(10000);
cout<<a/silniak<<endl;
}
silniak=1;
t--;
}
}