Dwa ciągi rekurencyjne limit czasu 1s; limit pamięci 32 MB
Dane są dwa ciągi zadany w sposób rekurencyjny: an = 1 dla n 6 0 bn = 1 dla n 6 0 an = 2an−1 + an−2 −3bn−1 dla n > 0 bn = bn−1 −bn−2 −2an−1 dla n > 0. Należy znaleźć wyrazy an oraz bn tego ciągu, dla zadanego indeksu n.
Wejście: Pierwsza linijka wejścia zawiera jedną liczbę naturalną n (−20 6 n 6 20). Wyjście:
Wyjście powinno zawierać dwie liczby całkowite: n-te wyraz ciągów, czyli an i bn oddzielone pojedyncza spacją.
Uwaga: Zadanie wykonaj rekurencyjnie (bez użycia tablic).
Przykład 1.
Wejście -3
Wyjście 1 1
Przykład 2.
Wejście 3
Wyjście 23 -15
Mam już cos takiego:
#include <iostream>
using namespace std;
int a(int n);
int b(int n);
int main()
{
int n;
cin>>n;
int a(int n);
{
if(n<1)
return 1;
if(n>0)
return 2*a(n-1)+a(n-2)-3*b(n-1);
}
int b(int n);
{
if(n<1)
return 1;
if(n>0)
return b(n-1)-b(n-2)-2*a(n-1);
}
return 0;
}
Problem mam z tym ze ciągi są zdefiniowane sobą nawzajem i wyskakują powiadomienia że b(int n) i a(int n) są niezdefiniowane.