Se dau două numere naturale diferite. Afişaţi cel mai mic număr care poate fi scris folosind toate cifrele celor două numere date.
Folosind vector de fecventa!
L-am facut asa
#include
using namespace std;
ifstream fin("numere7.in");
ofstream fout("numere7.out");
unsigned long long int a,b;
short int V[20],i;
int main ()
{
while(fin>>a>>b)
{
while (a>0)
{
V[a%10]++;
a=a/10;
}
while(b>0)
{
V[b%10]++;
b=b/10;
}
}
for (i=1;i<=9;i++)
if(V[i]>0)
{
fout<
V[i]--;
break;
}
for(i=0;i<=9;i++)
while(V[i])
{
fout<
V[i]--;
}
return 0;
}
si primesc 60 de puncte, pe Pbinfo! Nu inteleg unde gresesc! Autoorr!!
Răspunsuri la întrebare
Răspuns de
5
In primul rand gresesti pentru ca ai niste cazuri particulare cand nr1 si nr2 sunt 0, in al doilea rand gresesti pentru ca ai uitat ca poti avea si cifre de 0, iar cel mai mic numar nu poate incepe cu 0 deci rezolvarea se face astfel :
#include <fstream>
using namespace std;
int v[11], nr1, nr2, i, j, cif;
int main()
{
ifstream f("numere7.in");
ofstream g("numere7.out");
f >> nr1 >> nr2;
if(nr1 == 0 && nr2 == 0) {g << 0; return 0;}
if (nr1 == 0 && nr2 != 0) v[0] ++;
if (nr1 != 0 && nr2 == 0) v[0] ++;
while(nr1)
{
cif = nr1 % 10;
v[cif]++;
nr1 = nr1 / 10;
}
while(nr2)
{
cif = nr2 % 10;
v[cif]++;
nr2 = nr2 / 10;
}
if(v[0] > 0)
for(i = 1; i <= 9; i ++)
if(v[i] > 0)
{
g << i;
v[i]--;
break;
}
for(i = 0; i <= 9; i ++)
if(v[i] > 0)
for(j = 1; j <= v[i]; j ++)
g << i;
f.close();
g.close();
return 0;
}
#include <fstream>
using namespace std;
int v[11], nr1, nr2, i, j, cif;
int main()
{
ifstream f("numere7.in");
ofstream g("numere7.out");
f >> nr1 >> nr2;
if(nr1 == 0 && nr2 == 0) {g << 0; return 0;}
if (nr1 == 0 && nr2 != 0) v[0] ++;
if (nr1 != 0 && nr2 == 0) v[0] ++;
while(nr1)
{
cif = nr1 % 10;
v[cif]++;
nr1 = nr1 / 10;
}
while(nr2)
{
cif = nr2 % 10;
v[cif]++;
nr2 = nr2 / 10;
}
if(v[0] > 0)
for(i = 1; i <= 9; i ++)
if(v[i] > 0)
{
g << i;
v[i]--;
break;
}
for(i = 0; i <= 9; i ++)
if(v[i] > 0)
for(j = 1; j <= v[i]; j ++)
g << i;
f.close();
g.close();
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Ed. tehnologică,
9 ani în urmă
Engleza,
9 ani în urmă