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

Fisierul bac.txt conține cel mult 1000000 de numere naturale din intervalul [0,10^9].
Se cere sa se afișeze pe ecran, separate prin câte un spațiu, cifrele care apar de cele mai multe ori in scrierea numerelor din fișier. Pentru determinarea cifrelor cerute se utilizează un algoritm eficient din punct de vedere al timpului de executare.

Exemplu:
dacă fișierul conține numerele
399 1777578 721149 1212178
atunci pe ecran se afiseaza valorile de mai jos, nu neaparat in aceasta ordine
7 1

Răspunsuri la întrebare

Răspuns de boiustef
1

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("bac.txt");

long long num, cif, fr[10], apmax;

int main()

{

   while (f >> num)

   {

       if (num==0) ++fr[0];

       else

       {

           while (num)

           {

               cif=num%10;

               ++fr[cif];

               num/=10;

           }

       }

   }

   for (cif=0; cif<10; ++cif)

   {

       if (fr[cif]>apmax) apmax=fr[cif];

   }

   for (cif=0; cif<10; ++cif)

       if (fr[cif]==apmax) cout << cif << " ";

}

Alte întrebări interesante