ENUNT
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.
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.
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.
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
0 < n < 1000n numere citite vor fi nenule și mai mici decât 1.000.000.000REZOLVARE
#include <iostream>
using namespace std;
int v[1001],w[1001],n,i,j,uc,d,k;
int main()
{
cin>>n;
for (i=1;i<=n;i++)
{
uc=0;
cin>>v[i];
while (v[i]!=0)
{
uc=v[i]%10;
v[i]=v[i]/10;
} //am aflat primele cifre de la fiecare nr
w[i]=uc; //adaugam cifrele intr-un nou vector pentru a putea sorta mai tarziu
}
for (d=1;d<=n;d++) //aplicam algoritmul de sortare prin inversiuni sau interschimbare fara controlul terminarii
for (k=1;k<=n;k++)
if (w[d]<w[k]) //in cazul in care primul element e mai mare decat urmatorul, aplicam alg de interschimbare
{
w[0]=w[d]; //folosim w[0] ca auxiliar, pentru ca pozitia 0 nu este ocupata
w[d]=w[k];
w[k]=w[0];
}
for (d=1;d<=n;d++) cout<<w[d]; //afisam noul numar compus din cifrele vectorului, am fi putut sa compunem numarul dar este mai simplu sa afisam elementele vectorului fara spatiu intre ele
return 0;
}