Răspuns :
#include <iostream>
using namespace std;
int n,v[1005];
bool pp(int x)
{
for (int i=0;i*i<=x;i++)
if (i*i==x) return true;
return false;
}
int main()
{
cin>>n;
for (int i=1;i<=n;i++) cin>>v[i];
for (int i=1;i<n;i++)
{
for (int j=i+1;j<=n;j++)
{
if (pp(v[i]) && pp(v[j]) && v[i]>v[j])
{
int t=v[i];
v[i]=v[j];
v[j]=t;
}
}
}
for (int i=1;i<=n;i++) cout<<v[i]<<" ";
return 0;
}
Faci sortarea cu 2 for-uri si interschimbi cele 2 elemente (metoda celor 3 pahare) doar daca ambele sunt patrate perfecte si daca nu sunt deja sortate.
using namespace std;
int n,v[1005];
bool pp(int x)
{
for (int i=0;i*i<=x;i++)
if (i*i==x) return true;
return false;
}
int main()
{
cin>>n;
for (int i=1;i<=n;i++) cin>>v[i];
for (int i=1;i<n;i++)
{
for (int j=i+1;j<=n;j++)
{
if (pp(v[i]) && pp(v[j]) && v[i]>v[j])
{
int t=v[i];
v[i]=v[j];
v[j]=t;
}
}
}
for (int i=1;i<=n;i++) cout<<v[i]<<" ";
return 0;
}
Faci sortarea cu 2 for-uri si interschimbi cele 2 elemente (metoda celor 3 pahare) doar daca ambele sunt patrate perfecte si daca nu sunt deja sortate.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de ajutor, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și vă încurajăm să ne salvați în lista de favorite!