Informatică, întrebare adresată de lyrictime20, 8 ani în urmă

Fie șirul 1, 2, 3, 4, 5, 6, 7, ..., n, ... care îndeplinește regula de mai jos:



1 face parte din mulțimea numerotată cu 1.

2, 3 fac parte din mulțimea numerotată cu 2.

4, 5, 6 fac parte din mulțimea numerotată cu 3.

7, 8, 9, 10 fac parte din mulțimea numerotată cu 4



Iar n face parte din mulțimea numerotată cu m.

Cerința

Știind numarul n, să se afle m.

Date de intrare

Programul citește de la tastatură n.

Date de ieșire

Programul va afișa pe ecran numărul m, reprezentând numărul mulțimii din care face parte n.

Restricții și precizărin, m sunt numere naturale1 ≤ n, m ≤ 2*10^9+1

Răspunsuri la întrebare

Răspuns de Utilizator anonim
5

Am atasat 2 imagini cu explacitiile si 2 notepaduri cu codurile.

Rezolvare 1 - folosind formula matematica:


#include <iostream>

#include <cmath>

using namespace std;

int main()

{

   long long n, delta, rasp;

   cin >> n;

   delta = 1 + 8 * (n - 1);

   rasp = (1 + sqrt(delta)) / 2;

   cout << rasp;

   return 0;

}

Rezolvare 2 - folosind dinamica:

#include <iostream>

using namespace std;

int main()

{

   long long n, c = 1;

   cin >> n;

   while (n - c > 0) n -= c, ++c;

   cout << c;

   return 0;

}

Anexe:

Utilizator anonim: explactiile sunt si la indicati, pe pbinfo
Utilizator anonim: id: 4041
Alte întrebări interesante