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

Fișierul bac.txt conține, în ordine crescătoare, cel mult 106 numere naturale din intervalul [0,109],
separate prin câte un spațiu. Se cere să se afișeze pe ecran, în ordine strict crescătoare, separate prin
câte un spațiu, numerele pare distincte care apar în fișier. Dacă nu există niciun astfel de număr, se
afișează pe ecran mesajul nu exista. Proiectați un algoritm eficient din punctul de vedere al memoriei
utilizate și al timpului de executare.
Exemplu: dacă fișierul conține numerele 5 5 6 7 8 8 8 8 10 15 16 16 25 25 49
pe ecran se afișează, în această ordine, numerele 6 8 10 16

Răspunsuri la întrebare

Răspuns de Anonymus3000
3

Răspuns:

#include <iostream>

#include<fstream>

using namespace std;

ifstream f("bac.txt");

int x,fr[1000000],ok = 0;

int main() {

   while (f >> x) {

       if (x % 2 == 0 && fr[x] < 1) {

           ok = 1;

           ++fr[x];

           cout << x << " ";

       }

   }

   if (ok == 0)

       cout << "Nu exista";

   return 0;

}

Explicație:

Alte întrebări interesante