Cerinţa
Se consideră şirul 1, 2,1, 3,2,1, 4,3,2,1, ..., în care prima grupă este formată din numărul 1, a doua grupă este formată din numerele 2,1, …, a k-a grupă este formată din numerele k,k-1,...,2,1.
Pentru un număr natural dat n, să se determine al n-lea termen din şir.
Date de intrare
Programul citeşte de la tastatură numărul n
Date de ieşire
Programul va afişa pe ecran numărul x, reprezentând al n-lea termen din şir.
Restricţii şi precizări1 ≤ n ≤ 1.000.000.000
Exemplu
Date de intrare
14
Date de ieşire
2
IN C++
Răspunsuri la întrebare
Răspuns de
1
#include < iostream>
#include < cmath>
using namespace std;
int main()
{long long g,x,i,n,poz,g2,poz1;
cin>>n;
if(sqrt(1+8*n)==(int)sqrt(1+8*n))g=(-1+sqrt(1+8*n))/2;
else g=(-1+sqrt(1+8*n))/2+1;
poz=n-g*(g-1)/2;
g2=g-poz+1;
cout << g2;
return 0;
}
#include < cmath>
using namespace std;
int main()
{long long g,x,i,n,poz,g2,poz1;
cin>>n;
if(sqrt(1+8*n)==(int)sqrt(1+8*n))g=(-1+sqrt(1+8*n))/2;
else g=(-1+sqrt(1+8*n))/2+1;
poz=n-g*(g-1)/2;
g2=g-poz+1;
cout << g2;
return 0;
}
white2004:
nu am invatat cu cmath
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă