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ări
1 ≤ n ≤ 1.000.000.000
Exemplu
Date de intrare
14
Date de ieşire
2
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iostream>
using namespace std;
int main() {
int n,i,k;
cin>>n;
k=1;
while (k*(k+1)/2<n) k++;
cout<<1+k*(k+1)/2-n;
}
Explicație:
Am folosit cateva info de la matematica, mai precis suma lui Gauss. 1+2+...+n=n(n+1)/2;
Alte întrebări interesante
Istorie,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
8 ani în urmă
Informatică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă