Witam, stworzyłem prosty program rekurencyjny, który mimo iż działa dobrze i zwraca odpowiednie wyniki jest niepoprawny. Jak można zoptymalizować rekurencję przy pomocy tablicy jednowymiarowej? (żeby np. wcześniej wyliczone wartośći przechowywał i nie obliczał ich ponownie- tyle udało mi się wygooglować). Ma ktoś jakieś pomysły?
#include <iostream>
using namespace std;
int bezkrolikow (int n)
{
if (n==0) return 4;
if (n==1) return 7;
return (2*bezkrolikow(n-1)) + (5*bezkrolikow(n-2));
}
int main() {
int t,n;
cin>>t;
for (int i=0;i<t;i++)
{
cin>>n;
cout<<bezkrolikow(n)%2011<<endl;
}
return 0;
}