Mam takie zadanie
Agnieszka tak polubiła ciągi rekurencyjne, że nie zastanawia się już dłużej nad królikami, tylko analizuje same wzory. Tym razem prosi o obliczenie wartości elementów ciągu określonego wzorami: \(\displaystyle{ A(0)=4, A(1)=7, A(n)=2A(n-1)+5A(n-2)}\) dla \(\displaystyle{ n \ge 2}\). Agnieszka zdaje sobie sprawę, że taki ciąg rośnie bardzo szybko, a więc chciałaby poznać tylko reszty z dzielenia jego wyrazów przez \(\displaystyle{ 2011}\).
Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowita \(\displaystyle{ t \le 10}\) 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 \(\displaystyle{ n (0 \le n \text 100)}\).
Wyjście
Dla każdego testu wypisz w osobnej linii resztę z dzielenia wartości \(\displaystyle{ A(n)}\) przez \(\displaystyle{ 2011}\).
Przykład
Kod: Zaznacz cały
Wejście:
3
0
1
2
Wyjście:
4
7
34
Kod: Zaznacz cały
#include <iostream>
using namespace std;
int A(int n) {
if (n == 0) return 4;
else if (n == 1) return 7;
else return 2*A(n-1)+5*A(n-2) % 2011;
}
int main() {
int t, tab[10];
cin >> t;
for (int i = 0; i < t; i++) {
cin >> tab[i];
}
for (int i = 0; i < t; i++) {
cout << A(tab[i]) << endl;
}
return 0;
}
Pozdrawiam.