#652 · Subiectul II · Programare
Numere rotunde — același număr de cifre 0 și 1 în baza 2
✓ Rezolvare explicatăSuceava 2026 · nr. 5
Enunț
Fișierul atestat.in conține pe prima linie un număr natural n (2≤n≤100), iar pe următoarele n linii, n numere naturale cu cel mult 9 cifre fiecare, separate prin câte un spațiu.
a) Scrieți definiția completă a unui subprogram baza1, care primește prin intermediul parametrului x un număr natural nenul de cel mult 9 cifre; subprogramul returnează numărul de cifre de 1 din reprezentarea în baza 2 a numărului x. Identic, funcția baza0 returnează numărul de cifre de 0 din reprezentarea în baza 2 a numărului x.
b) Scrieți programul C++ care afișează pe ecran, separate prin câte un spațiu, toate numerele din fișierul text atestat.in care sunt rotunde. Dacă nu există niciun număr rotund, atunci se va scrie pe ecran Nu există!.
Explicație: un număr n se numește rotund dacă are un număr egal de cifre de 0 și de 1 în reprezentarea sa matematică în baza 2. De exemplu, numărul 184 este rotund, deoarece reprezentat în baza 2 conține 4 cifre de 0 și 4 cifre de 1. Numărul 120 nu este rotund, deoarece reprezentat în baza 2 conține 3 cifre de 0 și 4 cifre de 1.
Exemple
Date de intrare (atestat.in) |
Date de ieșire |
|---|---|
821 142 10 45 15 7 62 216 |
142 10 216 |
843 214 7 68 144 302 24 2140 |
Nu exista! |
Rezolvare
Exersează mai departe