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 prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!