Răspuns :
#include <vector>
#include <iostream>
using namespace std;
main()
{
int x,c;
cin >> x;
vector <int> a(1);
a[0]=1;
while (true) //ciclu infinit
{
if (a.size() % 2 ==1) a.push_back(a[a.size()-1]+1);
//daca nr de elemente in vector e impar atunci noi adaugam unul ci indece par
//a.size()-1 - indecele ultimului element
else a.push_back(a[a.size()-2]*2+1);
if (a[a.size()-1]>x)
//daca elementul adaugat e mai mare ca, il stergem si finisam ciclul
{
a.pop_back();
break;
}
}
for (int i=a.size()-1; i>=0; i--)
cout << a[i] << ' ';
}
#include <iostream>
using namespace std;
main()
{
int x,c;
cin >> x;
vector <int> a(1);
a[0]=1;
while (true) //ciclu infinit
{
if (a.size() % 2 ==1) a.push_back(a[a.size()-1]+1);
//daca nr de elemente in vector e impar atunci noi adaugam unul ci indece par
//a.size()-1 - indecele ultimului element
else a.push_back(a[a.size()-2]*2+1);
if (a[a.size()-1]>x)
//daca elementul adaugat e mai mare ca, il stergem si finisam ciclul
{
a.pop_back();
break;
}
}
for (int i=a.size()-1; i>=0; i--)
cout << a[i] << ' ';
}
Ti-am facut o sursa C++, fara vectori dinamici la fel de eficienta ca si cea trimisa mai sus. Pentru sortare descrescatoare am folosit sort-ul din STL. Succes!
#include <iostream>
#include <algorithm>
bool cmp(const int nr1, const int nr2)
{
return nr1>nr2;
}
using namespace std;
long long a,b,k,i,c,n,v[1000];
int main()
{
cin>>n;
a=1;
b=2;
c=3;
i=3;
v[++k]=a;
while(a<=n)
{
i++;
a=b;
b=c;
if(i%2==0) c=1+b;
else c=1+2*a;
if(a<=n) v[++k]=a;
}
sort(v+1,v+k+1,cmp);
for(i=1;i<=k;i++) cout<<v[i]<<" ";
return 0;
}
#include <iostream>
#include <algorithm>
bool cmp(const int nr1, const int nr2)
{
return nr1>nr2;
}
using namespace std;
long long a,b,k,i,c,n,v[1000];
int main()
{
cin>>n;
a=1;
b=2;
c=3;
i=3;
v[++k]=a;
while(a<=n)
{
i++;
a=b;
b=c;
if(i%2==0) c=1+b;
else c=1+2*a;
if(a<=n) v[++k]=a;
}
sort(v+1,v+k+1,cmp);
for(i=1;i<=k;i++) cout<<v[i]<<" ";
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!