Fie n
un număr natural nenul.
Se construiește mulțimea M
a tuturor numerelor formate din exact n
cifre, numere formate doar cu cifrele 1
și 2
.
Cerința
Scrieți un program care citește numărul natural n
și apoi determină cel mai mic număr natural x
din mulțimea M
cu proprietatea că x
este divizibil cu 2
n
.
Date de intrare
Fișierul de intrare doilan.in
conține pe prima linie numărul n
.
Date de ieșire
Fișierul de ieșire doilan.out
va conține pe prima linie un număr natural format din n
cifre, doar cifre 1
și 2
, reprezentând cel mai mic număr x
din mulțimea M
, divizibil cu 2
n
.
Restricții și precizări
1 ≤ n ≤ 100
- Pentru 30% din punctaj,
n ≤ 18
Exemplu
doilan.in
3
doilan.out
112
Explicație
Cel mai mic număr de trei cifre, format doar cu cifrele 1
și 2
, divizibil cu 2
3
, este x=112
. Astfel, acest număr se va scrie pe prima linie a fișierului de ieșire doilan.out
.
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 doilan:
# include <fstream>
using namespace std;
int y[103],x[103],n;
ifstream f("doilan.in");
ofstream g("doilan.out");
void imparte_la_2(int k)
{
int t=0,i;
for(i=1; i<=k; i++)
{
t=y[i]+t*10;
y[i]=t/2;
t=t%2;
}
}
int paritate_cat_impartirea_lui_x_la_2lan(int k)
{
int i;
for(i=1; i<=k; i++)
imparte_la_2(k);
return y[k]%2;
}
int main()
{
y[1]=x[1]=2;
f>>n;
int k,i,c;
for(k=1; k<n; k++)
{
if(paritate_cat_impartirea_lui_x_la_2lan(k)==1)c=1;
else c=2;
for(i=k; i>=1; i--)
y[i+1]=x[i+1]=x[i];
y[1]=x[1]=c;
}
for(int i=1; i<=n; i++)g<<x[i];
g<<endl;
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 #2146 doilan
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2146 doilan 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!