Informatică, întrebare adresată de mariaelenabuzatu, 9 ani în urmă

La testul de selecție la Centrul de Excelentă în Informatică din acest an, prima problemă ne cere să studiem un șir S de numere naturale nenule ai cărui primi termeni sunt: 1, 2, 1, 2, 3, 2, 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, 2, 3... să deducem regula prin care a fost construit și apoi să descoperim cel de-al K-lea termen al șirului S. Știe cineva cum se rezolvă această problemă? Cerinţă Scrieţi un program care să determine cel de-al K-lea termen al șirului S. Date de intrare Programul citește de la tastatură numărul natural nenul K. Date de ieșire Programul va afișa pe ecran un număr natural reprezentând cel de-al K-lea termen al șirului S. Restricții și precizări 1 ≤ K ≤ 2000000000, număr natural termenii șirului sunt numere naturale nenule strict mai mici decât 30000 Exemplu 1

Răspunsuri la întrebare

Răspuns de boiustef
3

#include <iostream>

using namespace std;

int main()

{

   int k, g, s, x, poz;

   cin >> k;

   if (k<3) cout << k;

   else

   {

       x=1;

       while (x*(x+1)<k) ++x;

       g=x-1;

       s=g*(g+1);

       poz=k-s;

       if (poz==0) cout << 2;

       else

       {

           if (poz<=x+1) cout << poz;

           else { poz=poz-(x+1); cout << (x+1)-poz; }

       }

   }

   return 0;

}

-------------------------------------------------------------

varianta 2 cu depasiri ........................

#include <iostream>

using namespace std;

long long i, j, k, crestere, t;

int main()

{

   cin >> k;

   t=1; j=1;

   while (i<k)

   {

       if (j==1) { crestere=1; ++t; }

       if (j==t) { crestere=-1; }

        cout << j << " ";

       ++i;

       if (i<k) j+=crestere;

   }

   cout << "\n";

   cout << j;

}



boiustef: prima varianta e de 100, dar ramane sa o analizati sa intuiti logica, dar a dou varianta e de 60 cu 4 depasiri de timp. am lasat in cod si afisarea sirului sa va incredintati cum lucreaza
sp4c3m4ng4m3r: stii, pacat ca nu am pus eu intrebarea, ca iti dadeam eu coroana
pollpo: ce buna e
Alte întrebări interesante