Witam mam problem z zadaniem z serwisu spoj. Program działa prawidłowo dla podanych przykładów przez spoja, ale po sprawdzeniu wyskakuje mi błąd wykonania. Napisał drugi kod trochę inaczej i dzieje się to samo. Nie mogę znaleźć błędu w moim kodzie. Proszę o pomoc w znalezieniu rozwiązania problemu. Link do zadania: http://pl.spoj.com/problems/BINOMS/
kod 1:
#include <iostream>
using namespace std;
int obliczDwumian(int n, int k) {
//sworznie zmiennych przechowujacych wartosci licznika i mianownika ulamka
int licznik = 1, mianownik = 1;
//obliczenie wartosci licznika
for (int i = n; i>n-k; i--) {
licznik *= i;
}
//obliczenie wartosci mianownika
for (int i = 2; i<=k; i++) {
mianownik *= i;
}
return licznik/mianownik;
}
int main() {
//stworzenie zmiennej przechowujacej ilosc testow
int t;
//wczytanie wartosci liczby testow
cin >> t;
//stworzenie zmiennych przechowujacych ilosc elementow w poczatkowym zbiorze oraz w nowych zbiorach
int liczbaElementowCalegoZbioru[t], liczbaElementowNowychZbiorow[t];
//wczytanie wartosci n i k
for (int i = 0; i<t; i++) {
cin >> liczbaElementowCalegoZbioru[i] >> liczbaElementowNowychZbiorow[i];
}
//wypisanie wynikow
for (int i = 0; i<t; i++) {
cout << obliczDwumian(liczbaElementowCalegoZbioru[i], liczbaElementowNowychZbiorow[i]) << endl;
}
return 0;
}
kod 2:
#include <iostream>
using namespace std;
int main() {
int n, k, t;
cin >> t;
for (int i = 0; i<t; i++) {
cin >> n >> k;
int l = 1, m = 1;
for (int j = n; j<n-k; j--) {
l *= j;
}
for (int j = 2; j<=k; j++) {
m *= j;
}
cout << l/m << endl;
}
return 0;
}