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

#1546 C++ 20 DE PUNCTE

(vectori de frecventa)

Cerința
Se dă numărul natural n și se cere să se afișeze cel mai mic număr natural format din cifrele sale.

Date de intrare
Fișierul de intrare mincifre.in conține pe prima linie numărul n.

Date de ieșire
Fișierul de ieșire mincifre.out va conține pe prima linie numărul m, reprezentând cel mai mic număr ce se poate forma cu cifrele numărului din fișierul de intrare.

Restricții și precizări
Numerele citite vor avea cel mult 10.000 de cifre



Exemplu
mincifre.in

321
mincifre.out

123
Explicație
Cel mai mic număr ce se poate forma cu cifrele 3,2,1 este 123.

Răspunsuri la întrebare

Răspuns de ap53
11
#include <fstream>
using namespace std;
ifstream cin("mincifre.in");
ofstream cout("mincifre.out");
char c;
int x[10];

int main()
{
    c=cin.get();
    while(!cin.eof())
    {
        x[c-48]++;
        c=cin.get();
    }
    int n=1;
    while(x[n]==0)
        n++;
    cout<<n;
    x[n]--;
    for(int i=1;i<=x[0];i++)
        cout<<0;
    for(int i=n;i<10;i++)
        for(int j=1;j<=x[i];j++)
            cout<<i;
}
Alte întrebări interesante