Rezolvare completă PbInfo #3381 ksir1

Se dă următorul şir de numere:
1 1 2 2 1 2 3 3 3 1 2 3 4 4 4 4 1 2 3 4 5 5 5 5 5...
În şir avem grupe formate după următoarea regulă: grupa g conţine numerele naturale de la 1 la g în ordine crescătoare, urmate de g-1 valori egale cu g (g=1, 2, ...).

Cerința

Scrieţi un program care citeşte o valoare k şi afişează al k-lea termen al şirului de mai sus.

Date de intrare

Fișierul de intrare ksir.in conţine pe prima linie numărul natural k.

Date de ieșire

Fișierul de ieșire ksir.out va conţine o singură linie pe care va fi scris un număr natural ce reprezintă al k-lea element din şir.

Restricții și precizări

  • 1 ≤ k ≤ 20.000.000.000
  • Poziţiile termenilor din şir sunt numerotate începând cu 1.

Exemplu

ksir.in

8

ksir.out

3

Explicație

Al 8-lea element din şir este 3.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema ksir1:

///Emanuela Cerchez 100
#include <fstream>

using namespace std;
ifstream fin("ksir.in");
ofstream fout("ksir.out");
long long int k, total, grupa;
int main()
{fin>>k;
 grupa=1; total=0;
 while (total+2*grupa-1<k) {total+=2*grupa-1; grupa++;}
 if (k-total<=grupa) fout<<k-total<<'\n';
    else fout<<grupa<<'\n';
    fout.close();
 return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #3381 ksir1

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3381 ksir1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!