👤

sa se determine al n-lea termen al sirului:
1,1,2,1,2,3,1,2,3,4,1,2,3,4,5...
fara a folosi tipuri structurale de date.
ex: Al 55-lea termen al sirului este 10.


Răspuns :

#include <iostream>
#include <cmath>
using namespace std;

/*Numarul de elemente ale sirului se poate calcula dupa formula sumei lui Gauss n(n + 1) / 2, daca sirul este sub foma:
1, 1,2, 1,2,3, ,..., 1,2,3,...,n
Daca numarul de elemente este exact, atunci n(n + 1) / 2 = x, iar de aici, vom afla ca n = (sqrt(8x + 1) - 1) / 2 (ecuatie de gradul al II-lea, iar elementul negativ nu-l luam in considerare)
Daca x este mai mare, atunci vom face diferenta*/

int main()
{
   int x, n, s;
   cin>>x;
   n = (sqrt(8 * x + 1) - 1) / 2;
   s = n * (n + 1) / 2;
   if(s == x) cout<<n;
   else cout<<x - s;
}