Se citeşte de la tastatură un număr natural n (1n100). 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:
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:
Eu am folosit doar parcurgerea secvențială.
#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; }
}
}
}
}
}