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:

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

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

 

 

Rozwiązanie

Wyznaczymy kilka kolejnych wyrazów tego ciągu:

$$a_1=-1$$

$$a_2=-a_1\cdot 2-3=-(-1)\cdot 2 - 3=-1$$

$$a_3=-a_2\cdot 3-3=-(-1)\cdot 3-3=0$$

$$a_4=-a_3\cdot 4-3=0-3=-3$$

$$a_5=-a_4\cdot 5-3=-(-3)\cdot 5-3=12$$

$$\cdots$$

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;


return 0;
}