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

Fișierul bac.txt conține un șir de cel mult 10^6 numere naturale din intervalul [0,10^3), separate prin câte un spațiu. Se cere să se afișeze pe ecran cea mai mare cifră dintre cele care sunt comune tuturor termenilor șirului aflat în fișier, sau mesajul nu exista dacă nu există nicio astfel de cifră. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.

Exemplu: dacă fișierul conține numerele 701 917 17 171 817 771 71 atunci se afișează pe ecran 7 (cifrele 1 și 7 sunt comune tuturor termenilor șirului)

Răspunsuri la întrebare

Răspuns de lucaciucandrei
1

#include<iostream>

#include<fstream>

using namespace std;

int main(){

   int x,v[11]={0},nr=0;

   ifstream f("bac.txt");

   while(f>>x){

       int vx[11]={0};

       do{

           if(vx[x%10]!=1)

               v[x%10]++;

           vx[x%10]=1;

           x/=10;

       }while(x!=0);

       nr++;

   }

   for(int i=9;i>=0;i--)

       if(v[i]==nr){

           cout<<i;

           return 0;

       }

   cout<<"Nu exista.";

   return 0;

}

Alte întrebări interesante