Cerința
Se citesc două cifre diferite c1
și c2
(nenule). Afișați în ordine crescătoare toate numerele care conțin exact c1
cifre egale cu c2
și c2
cifre egale cu c1
.
Date de intrare
Programul citește de la tastatură cifrele c1
și c2
separate printr-un spațiu.
Date de ieșire
Programul va afișa pe ecran numerele cerute, câte unul pe un rând.
Restricții și precizări
1 ≤ c1, c2 ≤ 9
c1 ≠ c2
Exemplu
Intrare
2 3
Ieșire
22233 22323 22332 23223 23232 23322 32223 32232 32322 33222
Explicație
S-au afișat în ordine crescătoare toate numerele cu 2
cifre de 3
și 3
cifre de 2
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema cifre_c1c2:
#include <iostream>
using namespace std;
int X[21],c1,c2,n;
void afisare()
{
for(int i=1;i<=n;i++)
cout<<X[i];
cout<<"\n";
}
int ok(int k)
{
int cc1=0,cc2=0;
for(int i=1;i<=k;i++)
if(X[i]==c1) cc1++;
else cc2++;
if(cc1>c2 || cc2>c1) return 0;
return 1;
}
void back(int k)
{
for(int i=c1;i<=c2;i++)
{
X[k]=i;
if(ok(k))
{
if(k==n) afisare();
else back(k+1);
}
}
}
int main()
{
cin>>c1>>c2;
if(c1>c2) swap(c1,c2);
n=c1+c2;
back(1);
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3157 cifre_c1c2
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3157 cifre_c1c2 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!