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

Se da numarul natural n si se cere sa se afiseze cel mai mic numar natural format din cifrele sale. (C++)

Răspunsuri la întrebare

Răspuns de Relampago
1

#include <iostream>

using namespace std;

int i,cifre[21],nrcifre,aux,j,nr;

unsigned long long int n;

int main()

{

   cin>>n;

   //bagam cifrele intr un vector cifre

   while(n)

   {

       nrcifre++;

       cifre[nrcifre]=n%10;

       n/=10;

   }

   ///sortam cifrele in ordine crescatoare  

   for(i=1; i<nrcifre; i++)

   {

       for(j=i+1; j<=nrcifre; j++)

           if(cifre[i]>cifre[j])

           {

               aux=cifre[i];

               cifre[i]=cifre[j];

               cifre[j]=aux;

           }

   }

   //  for(i=1; i<=nrcifre; i++)cout<<cifre[i]<<" ";

   bool ok=0;

   /// daca prima cifra e 0 atunci cat timp am cifre 0 le sar si cand ajung la prima cifra diferita de zero

   ///o interschimb cu prima cifra

   /// adica daca avem numarul  n= 1230450 atunci trebuie sa rezulte vectorul 0 0 1 2 3 4 5

   /// de unde scoatem numarul 1002345, deci prima cifra de 0 din vector s a interschimbat cu prima cifra nenula dupa 0

   if(cifre[1]==0)

   {

       i=1;

       while(cifre[i]==0)i++;

       int aux=cifre[1];

       cifre[1]=cifre[i];

       cifre[i]=aux;

       for(i=1; i<=nrcifre; i++)

           nr=nr*10+cifre[i];

   }

   else

       for(i=1; i<=nrcifre; i++)

           nr=nr*10+cifre[i];

   cout<<nr;

   return 0;

}



alexiiarh: Buna seara
alexiiarh: sunteti online ??
alexiiarh: ???????????
Alte întrebări interesante