Informatică, întrebare adresată de mierlaaurie, 9 ani în urmă

Cerinţa
Se citește de la tastură un număr natural n, apoi n numere naturale. Să se afişeze cel mai mic număr care poate fi scris folosind prima cifră a numerelor citite.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n numere naturale, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran numărul MIN, cel mai mic număr care poate fi scris folosind prima cifră a numerelor citite.

Restricţii şi precizări
0 < n < 1000
cele n numere citite vor fi nenule și mai mici decât 1.000.000.000

Exemplu
Intrare

5
100 312 276 985 5021
Ieșire

12359

Răspunsuri la întrebare

Răspuns de boiustef
5

#include <iostream>

using namespace std;

int n, fr[10], i, num, cif, m, j;

int main()

{

   cin >> n;

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

   {

       cin >> num;

       while (num>9)

           num/=10;

       cif=num;

       ++fr[cif];

   }

   cif=1;

   while (fr[cif]==0) ++cif;

   cout << cif; --fr[cif];

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

   {

       if (fr[i]>0)

       {

           for (j=1; j<=fr[i]; ++j)

               cout << i;

       }

   }

}

*****************************************

#include <iostream>

using namespace std;

long long n, i, v[1001],sdiv[1001], d, s, num, j, schimb=1;

int main()

{

   cin >> n;

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

   {

       cin >> v[i];

       num=v[i];

       s=0;

       for (d=1; d*d<=num; ++d)

       {

           if (num%d==0)

           {

               s=s+d;

               if (d*d!=num) s=s+num/d;

           }

       }

       sdiv[i]=s;

   }

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

   {

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

       {

           if (sdiv[j]<sdiv[i])

           {

               swap(sdiv[i], sdiv[j]);

               swap(v[i], v[j]);

           }

       }

   }

   while (schimb==1)

   {

       schimb=0;

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

       {

           if (sdiv[i]==sdiv[i+1] && v[i]>v[i+1]) { swap(v[i], v[i+1]); schimb=1; }

       }

   }

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

       cout << v[i] << " ";

}


boiustef: am postat+o tot acolo, mai jos
boiustef: dacă apar întrebări, le pui...
mierlaaurie: Multumesc enorm de mult
boiustef: se poate si prima de sortat vectorul numerelor...
boiustef: eu la prima am folosit o metoda mai efectiva in timp si memorie
boiustef: auuuuu , ai luat? e ok???
mierlaaurie: da
mierlaaurie: mi-a dat 100
boiustef: pe primul il poti modifica sa folosesti sortarea vectorului
boiustef: de bucurie ai uitat sa mulţumeşti... :)))))))
Alte întrebări interesante