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

Vreo metoda de a sorta un numar natural fara a folosi vectori?


Utilizator anonim: vrei sa spui un sir de nr sau cifrele unui numar
andreidiaconescu18: intrebarea ta nu are sens
ovdumi: poate ca vrea sa-i sorteze cifrele
alexlolshockp1aywd: cifrele.
ArMyFoRHeLL: Incearca sa citesti numarul ca string si aplici un algoritm de sortare.
andreidiaconescu18: hai ca ti-am facut o rezolvare si merge pentru numere de maxim 18 cifre si sa nu contina cifre de 0 ca nu o sa le ia in considerare.
alexlolshockp1aywd: Unde o pot gasi?
andreidiaconescu18: ti-am postat rezolvarea

Răspunsuri la întrebare

Răspuns de andreidiaconescu18
1

Merge pentru numere care nu contin cifra 0 si numere de maxim 16 cifre


#include <iostream>

using namespace std;

long long remove(int min, long long n)

{

   long long aux=0;

   while (n!=0)

   {

       if(n%10!=min)

           aux=aux*10+n%10;

       n=n/10;

   }

   n=0;

   while(aux!=0)

   {

       n= n*10+aux%10;

       aux=aux/10;

   }

   return n;

}

int main() {

   long long n, n_final=0;

   cout<<"n=";

   cin>>n;

   while(n!=0)

   {

       long long aux=n;

       int min=10,k=0;

       while(aux!=0)

       {

           int mp=aux%10;

           if(mp<min)

           {

               min = mp;

               k=1;

           }

           else if(mp==min)

               k++;

           aux =aux/10;

       }

       for(int i=0; i<k; i++)

           n_final = n_final*10+min;

       n = remove(min,n);

   }

   cout<<"n_sort="<<n_final<<endl;

   return 0;

}


Alte întrebări interesante