Siemanko, mam problem z zadaniem króliki na "sprawdzarce" - adjule.
Agnieszka dowiedziała się ostatnio, skąd wziął się ciąg Fibonacciego. Mianowicie, uczony rozważał teoretyczny eksperyment dotyczący szybkości rozmnażania się stada królików przy następujących założeniach:
- na początku mamy jedną nowo narodzoną parę królików
- każda nowa para staje się płodna po miesiącu życia
- każda płodna para ma co miesiąc jedną parę potomstwa
- króliki są nieśmiertelne.
Wartość F(n) oznacza po prostu liczbę par królików po n miesiącach.
Agnieszka zastanawia się teraz, jakie byłoby rozwiązanie analogicznego zagadnienia w przypadku gdyby każda para królików stawała się płodna dopiero po dwóch miesiącach, ale za to miała co miesiąc dwie nowe pary potomstwa.
Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowita t<=5 oznaczająca liczbę testów.
W kolejnych liniach znajdują się poszczególne testy. Każdy z nich składa się z jednej liczby całkowitej n (0<=n<=30).
Wyjście
Dla każdego testu wypisz w osobnej linii liczbę par królików otrzymanych po n miesiącach w eksperymencie Agnieszki.
Przykład
Wejście:
4
0
1
3
4
Wyjście:
1
1
3
5
#include <iostream>
using namespace std;
int A(int n)
{
if(n<=1)
return 1;
else
{
return A(n-2)+(2*A(n-3));
}
}
int main() {
int t, n, i;
cin >> t;
for(i=1; i<=t; i++)
{
cin >> n;
cout << A(n) << endl;
}
return 0;
}
Sprawdzarka nie chce tego przyjąć, a zastosowanie A(n-1)+A(n-2) odrzuca "zły wynik", pomimo tego, że wynik jest dobry. Jakieś pomysły?