👤

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++

(PROBLEMA 243 DE PE PBINFO)


Răspuns :

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

int main() {
  int n;
  cin >> n;
  int rad = sqrt(2 * n) + 2;
  while (rad * (rad + 1) / 2 >= n)
    rad--;
  n -= rad * (rad + 1) / 2;
  rad++;
  int sol = rad - n + 1;
  cout << sol;
  return 0;
}
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți alte întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag să reveniți și nu uitați să ne salvați în lista de favorite!


Ze Teaching: Alte intrebari