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

Se dă un vector x cu n elemente numere naturale, ordonate crescător, și un vector y cu m elemente, de asemenea numere naturale. Verificați pentru fiecare element al vectorului y dacă apare în x.
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale vectorului x. Apoi și citește m și cele m elemente ale lui y.
Programul va afișa pe ecran m valori 0 sau 1, separate prin exact un spațiu. A j-a valoare afișată este 1, dacă al j-lea element al șirului y apare în x, respectiv 0 în caz contrar.
c++

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int n,m,i, x[25001], num;

int div_imp (int p, int q)

{  

   int mij;

   if (q<p)

       return 0;

   else

       {  

           mij=(p+q)/2;

           if(x[mij]==num)

               return 1;

           else

               if(num<x[mij])

                   return div_imp (p, mij-1);

               else

                   return div_imp (mij+1,q);

       }

}

int main()

{

   cin >> n;

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

       cin >> x[i];

   cin >> m;

   for (i=1; i<=m; ++i)

   {

       cin >> num;

       if (div_imp(0,n-1))

           cout << 1;

       else cout << 0;

       cout << " ";

   }

}

Explicație:


Mela44: multumesc
boiustef: cu plăcere
Alte întrebări interesante