Se dau n numere naturale. Afișați cifrele care apar în scrierea zecimală a acestor numere, în ordinea crescătoare a numărului de apariții. Dacă două cifre au același număr de apariții, se va afișa mai întâi cifra mai mica.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieșire
Programul va afișa pe ecran numărul cifrele care apar în scrierea zecimală a numerelor citite, în ordinea cerută, separate prin exact un spațiu.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
boiustef:
undeva am vazut problema... e de pe pbinfo?
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iostream>
#include <algorithm>
using namespace std;
int v[1001];
struct data
{
int cifra,
nrap;
}vc[10];
bool cresc( const data &a, const data &b)
{
if (a.nrap != b.nrap) return (a.nrap < b.nrap);
return (a.cifra < b.cifra);
}
int main()
{
int n, i, m, cif;
cin >> n;
for (i=1; i<=n; ++i) cin >> v[i];
for (i=0; i<=9; ++i) vc[i].cifra=i;
for (i=1; i<=n; ++i)
{
m=v[i];
while (m)
{
cif=m%10; ++vc[cif].nrap; m/=10;
}
}
sort(vc,vc+10,cresc);
for (i=0; i<=9; ++i)
if (vc[i].nrap) cout << vc[i].cifra<<" ";
return 0;
}
Explicație:
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Franceza,
9 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă