Cześć, wyskakuje mi błąd - Błąd wykonania(SIGFPE)
Mój kod:
long int silnia(int liczba)
{
if (liczba == 0) return 1;
else return liczba=liczba*(silnia(liczba-1));
}
int main()
{
int a, b, testy, i, j, mnoznik, c;
cin >> testy;
for(i=1; i<=testy; i++)
{
cin >> a >> b;
if (a==0 || b==0)
cout << silnia(a)/(silnia(b)*silnia(a-b));
else
{
c=a;
for(j=1; j<b; j++)
c=c*(a-j);
cout << c/silnia(b);
}
}
return 0;
}
Spędziłem dzis nad nim okolo 10h ( w około 5h pracy kod był dłuższy 3x ... załamka... )
Nie wiem czego może dotyczyc ten blad przeczytalem tylko ze chodzi o blad algorytmiczny jak dzielenie przez 0 itp
Nie prosze o bezposrednią przyczynę błędu a o wskazówkę
Wydaje mi się że sędzia wymaga wiekszego zakresu dla funkcji silnia ale probowalem z long intem i long long intem i tak samo