Răspuns :
Răspuns:
Explicație:
#include <iostream>
using namespace std;
int Freq[10]; /// frecventa cifrelor
int main()
{
long long n, numar;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> numar;
int min = 10;
while(numar)
{
if(numar % 10 < min)
min = numar % 10;
numar /= 10;
}
Freq[min] += 1;
}
if(Freq[0] != 0) /// ma asigur ca nu incep numarul cu cifra 0
{
int i = 1; /// pornesc de la cifra 1
while(Freq[i] == 0) /// cat timp n-am gasit cea mai mica cifra diferita de 0
{
i += 1;
}
cout << i ;
Freq[i] -= 1;
}
/// tu ai numarul maxim de numere = 999 deci numarul tau trebuie sa contina maxim 999 de cifre.. si asta nu admite long long
/// astfel aplic metoda vectorului de frecventa si afisez cele mai mici cifre in ordine crescatoare asigurandu-ma ca nu incep cu 0
for(int i = 0; i < 10; i++)
{
while(Freq[i] != 0)
{
cout << i;
Freq[i] -= 1;
}
}
return 0;
}
Sper sa fie bine, nu stiu care este problema si nu am putut testa decat pe exemplul dat!
Răspuns:
#include <iostream>
using namespace std;
int n, i, num, cif, fr[10], cifmin, j;
int main()
{
cin >> n;
for (i=1; i<=n; ++i)
{
cin >> num;
cifmin=10;
while (num)
{
cif=num%10;
if (cif<cifmin) cifmin=cif;
num=num/10;
}
++fr[cifmin];
}
cif=0;
while (fr[cif]==0) ++cif;
if (cif>0)
{
for (i=cif; i<10; ++i)
{
if (fr[i]>0) {
for (j=1; j<=fr[i]; ++j)
cout << cif; }
}
}
else
{
i=1;
while (fr[i]==0) ++i;
cout << i; --fr[i];
for (i=0; i<10; ++i)
{
if (fr[i]>0) {
for (j=1; j<=fr[i]; ++j)
cout << i; }
}
}
}
Explicație:
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!