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

Se citeşte de la tastatură un număr natural n (1n100). Să se afişeze pe ecran al n-lea termen al şirului 1, 1, 2, 2, 1, 2, 3, 3, 3, 1, 2, 3, 4, 4, 4, 4, 1, 2, … construit astfel: prima grupă este formată din numărul 1, a doua grupă este formată din numărul 1 urmat de numărul 2 scris de două ori, ş.a.m.d., grupa cu numărul k este formată din numerele 1, 2, …, k-1 urmate de numărul k scris de k ori.
Ajutați mă va roog​

Răspunsuri la întrebare

Răspuns de Levi20
1

Răspuns:

Levi20☆ Maestru ☆

Răspuns:

De ce nu cautati intai problema sa vedeti daca s-a mai pus:) asta e a 3a oara cand trimit programul asta

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

int n,nr=0,d;

cin>>n;

if(n==1)

cout<<1;

else

for(int i=n;i>=1;i--)

{

d=sqrt(i);

if(d*d==i)

{

if(nr==0)

cout<<d;

else

{

if(nr<=d)

cout<<nr;

else

cout<<d+1;

}

break;

}

else

nr++;

}

return 0;

}

Explicație:


Levi20: Vezi acum
Rayzen: Da, merge acum.
Levi20: :))
Levi20: Ms de observatie
Rayzen: L-am făcut și eu, dar cu mai multe for-uri.
Levi20: Lasa ca-l ajuti asa:D
Levi20: A vrut o alta varianta si acum o are:)))
Levi20: Desi el nu se gandeste ca la fel de bine poate sa ti ia si varianta ta colegii lui:))
guzgaclaudiu88: mulțumesc
Rayzen: Tu ai folosit o formulă matematică.
Eu am folosit doar parcurgerea secvențială.
Răspuns de Rayzen
1

#include <iostream>

using namespace std;

int main()

{

   int n, contor = 0;

   cin >> n;

   for (int i = 1; i <= n; i++)

   {

       for (int j = 1; j <= i; j++)

       {

           if (j < i)

           {

               contor++;

               if (contor == n) { cout << j; n = i; break; }

           }

           else

           {

               for (int k = 1; k <= i; k++)

               {

                   contor++;    

                   if (contor == n) { cout << i; n = i; break; }

               }

           }

       }

   }

}


guzgaclaudiu88: mulțumesc
Rayzen: Cu plăcere!
Alte întrebări interesante