Witam, zwracam się z prośbą o pomoc w znalezieniu błędu w kodzie programu w C++ na obliczanie 1000! przy użyciu tablic. Program bowiem zwraca bezsensowną wartość, i to zawierającą ujemne cyfry. Algorytm natomiast raczej jest w porządku.
#include <iostream>
using namespace std;
int main()
{
const int liczba = 2800;
int tab[liczba];
tab[liczba - 1] = 1;
int n, act, i;
for (n = 2; n <= 1000; n++)
{
act = 0;
for (act = 0, i = liczba - 1; i > 0; i--)
{
act += n * tab[i];
tab[i] = act % 10;
act /= 10;
}
}
int licz = 0;
for (licz; tab[licz] == 0; licz++);
cout << "1000! = ";
while (licz <= liczba - 1)
{
cout << tab[licz];
licz++;
}
cout << endl;
return 0;
}