Programowanie i algorytmy

N-ty wyraz ciągu 2

Zad. 5. Poniżej zdefiniowany jest pewien ciąg, którego kolejne wyrazy generowane są w sposób rekurencyjny:

{tex}a_n=\left\{\begin{matrix}-1,&dla\ n=1\\-a_{n-1}\cdot n-3&dla\ n>1\end{matrix}\right.{/tex}

Napisz program, który znajdzie wartość n-tego wyrazu ciągu.

 

 

 

Rozwiązanie

Wyznaczymy kilka kolejnych wyrazów tego ciągu:

{tex}a_1=-1{/tex}

{tex}a_2=-a_1\cdot 2-3=-(-1)\cdot 2 - 3=-1{/tex}

{tex}a_3=-a_2\cdot 3-3=-(-1)\cdot 3-3=0{/tex}

{tex}a_4=-a_3\cdot 4-3=0-3=-3{/tex}

{tex}a_5=-a_4\cdot 5-3=-(-3)\cdot 5-3=12{/tex}

{tex}\cdots{/tex}

 

Aby wyznaczyć następny wyraz, trzeba znać wartości wszystkich poprzednich. Indeksy wyrazów ciągu są liczbami naturalnymi dodatnimi.

#include<iostream>
using namespace std;
 
int ciag(int n)
{
  if(n<2) 
    return -1;
 
  return -ciag(n-1)*n-3;
}
 
int main()
{
  int n;
 
  cout<<"Podaj nr wyrazu ciągu, którego wartość chcesz policzyć: ";
  cin>>n;
  cout<<n<<" wyraz ciągu ma wartość "<<ciag(n)<<endl;
 
system("pause");
 
return 0;
}
 

powrót