Cerința
Se citesc numere naturale cuprinse între 1
și 30.000.000
până la întâlnirea numărului 0
. Să se afișeze valoarea duplicat.
Date de intrare
Programul citește de la tastatură maxim 1.000.000
de numere cuprinse între 1
și 30.000.000
.
Date de ieșire
Programul va afișa pe ecran numărul d
, reprezentând valoarea duplicată.
Restricții și precizări
- între numerele citite se află cu siguranță un număr duplicat
Exemplu
Intrare
12 3 8 10 5 8 2 0
Ieșire
8
Explicație
Valoarea 8
apare de doua ori.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Memory010 :
#include <iostream>
using namespace std;
unsigned int v[940000]; /// suficienti biti pentru a reprezenta orice valoare intre 0 si 30 mil
unsigned int duplicat;
int adauga (unsigned int x)
{
int poz1 = x/32; /// al catelea element din vectorul v va contine bitul cu numarul x
int poz2 = x%32; /// al catelea bit din v[poz1] este bitul al x-ulea
unsigned int i=1;
if (v[poz1] & (i<<poz2)) return 0;
v[poz1] |= (i<<poz2);
return 1;
}
int main()
{
bool gasit=false;
while(!gasit)
{
int x;
cin >> x;
if (!adauga(x))
{
duplicat=x;
gasit=true;
}
}
cout << duplicat;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3291 Memory010
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3291 Memory010 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!