Răspuns :
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bac.txt");
ofstream g("bac.out");
int n, distincte, fr[10], num, nrzero, i, z, exista;
int main()
{
f >> n;
while (f >> num)
{
nrzero=0;
while (num>1)
{
++nrzero;
num=num/10;
}
if (fr[nrzero]==0) { fr[nrzero]=1; ++distincte; };
}
if (distincte>=n)
{
exista=1;
i=0; num=0;
while (num<n)
{
if (fr[i]==1)
{
++num;
z=i;
}
++i;
}
}
if (exista)
{
num=1;
for (i=1; i<=z; ++i) num=num*10;
g << num;
}
else g << "Nu exista";
}
Explicație:
da, problema dată diferă de puteri6, deoarece aici se caută distincte.
Am folosit un singur vector caracteristic, fr[10]. Citind linia a doua a fişierului aflu pentru fiecare numar citit nr de zerouri ale lui. Dacă e 100, el are două zerouri şi atunci pun fr[2]=1. Dacă cândva mai întîlnesc pe 100, nu mai schimb valoarea lui fr[2], deoarece ne trebuiesc numerele distincte. Când în fr pun următorul 1, măresc distincte, şi astfel numărăm câte distincte vom avea. Variabila num, am folosit-o în diferite roluri: mai întîi citeam în ea numerele din fişier, apoi am folosit-o ca contor să ajung la al n-ulea distinct, şi în fine am folosit-o pentru numărul rezultant la care trebuia de adăugat z zerouri. z a semnalizat indicele elementului din vector care este al n-lea distinct. ... Mai meditează, ... :))))
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!