Witam,
Mam do napisania program poniższej treści:
Należy policzyć liczby Fibonacciego F(n) mod 70001 dla ujemnych n. Należy skorzystać z faktu, ze F(-2k) = -F(2k) i F(-2k + 1) = F(2k - 1).
Oczywiście F(0) = 0, F(1) = 1 i F(n) = F(n - 1) + F(n - 2) dla n > 1.
Przydatne moga być również zależności:
F(2n) = F(n) (F(n) + 2 F(n - 1))
F(2n + 1) = F(n + 1)2 + F(n - 1)2
Mój problem polega na tym, że dla dużych liczb przekracza zakres. Czy ktoś mógłby mi pomóc?
Tutaj jest kod:
int main(int argc, char *argv[])
{
int n;
cin>> n;
long long int tab[10000];
tab[0]=0;
tab[1]=1;
int i;
for (i=2;i<=n;i++)
{
if (i%2==0)
tab[i]=-tab[i-1]-tab[i-2]; else
tab[i]=tab[i-1]+tab[i-2];
}
cout<<tab[i-1]%70001<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}