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

21v...................... ​

Anexe:

boiustef: pot fi mai multe elemente cu aceeași apropiere de pătrat perfect...
mirunaelena263: da, aveți dreptate
mirunaelena263: dacă sunt mai mulți cu același aproprie eu am încercat sa ii afișez pe toți,nu înțeleg de ce nu merge, vreți va rog sa îmi arăți metoda dumneavoastră care credeți ca e mai simpla?
boiustef: 1. ași crea încă un vector cu apropierele minime pentru fiecare element
2. aflăm elementul minim din apropieri
3. parcurgem vectorul apropierilor și dacă egal minim, afișem elementul din primul vector
boiustef: sper să fie clară ideea
mirunaelena263: acum chiar am înțeles, mulțumesc!!!

Răspunsuri la întrebare

Răspuns de boiustef
3

Răspuns:

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

   int n,i;

   cin >> n;

   int v[n], ap[n];

   for (i=0; i<n; i++) cin >> v[i];

   int a,b;

   for (i=0; i<n; i++) {

       a=sqrt(v[i]);

       ap[i]=v[i]-a*a;

       b=(a+1)*(a+1)-v[i];

       if (b<ap[i]) ap[i]=b;

   }

   int apmin=ap[0];

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

       if (ap[i]<apmin) apmin=ap[i];

   }

   cout << "apropiere minima de " << apmin << " o au elementele: ";

   for (i=0; i<n; i++) {

       if (ap[i]==apmin) cout << v[i] << " ";

   }

   return 0;

}

Explicație:


mmamam: Ajuta ma si pe mine te rog
mirunaelena263: mulțumesc frumos!!!
mirunaelena263: ce înseamnă mai exact ap[0] adică ce valoarea ar avea?Cred ca este un vector cu o singura componenta si ia valoarea lui ap[i]?
boiustef: bună ziua, miruna.
vectorul ap este completat cu apropierile minime de un pătrat perfect a elementelor din vectorul v.
boiustef: vectorii sunt indexați de la 0, deci ap[0] este apropierea minima a lui v[0].
boiustef: daca primul din v este 14, deci v[0]=14, atunci ap[0]=2, deoarece cel mai apropiat p[trat perfect a lui 14 este 16 si deci 16-14=2
mirunaelena263: acum am înțeles, mulțumesc frumos!!
Alte întrebări interesante