Cerința
Afişaţi, în ordine crescătoare, toate numerele dintr-un anumit interval care au toate cifrele egale.
Sunt două tipuri de cerinţe:
1. se dau a
şi b
si se cer toate numerele din intervalul a
, b
(inclusiv, eventual, capetele).
2. Se da x
si se cer toate numerele cu maxim x
cifre.
Date de intrare
Din fişierul egale.in
se citeşte mai întâi un număr T
. Dacă T
este 1
pe a doua linie sunt două numere a
şi b
, separate prin spaţiu. Dacă T
este 2
, pe a doua linie va fi numărul x
.
Date de ieșire
In fişierul egale.out
se scriu, pe un rând numerele cerute separate prin câte un spaţiu.
Restricții și precizări
1 <= a <= b <= 10
17
1<=x<=100
- Pentru
20%
din punctaj avemT = 1
şi1 <= a, b <= 10
4
- Pentru încă
20%
din punctaj avemT = 1
şi10
8
<= a, b <= 10
9
- Pentru încă
10%
din punctaj avemT = 1
şia, b > 10
9
- Pentru
50%
din punctaj avemT=2
Exemplu
egale.in
1 8 30
egale.out
8 9 11 22
egale.in
2 2
egale.out
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99
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 egale:
#include <fstream>
#include <cassert>
using namespace std;
int main() {
ifstream fin("egale.in");
ofstream fout("egale.out");
int op;
fin >> op;
assert(op == 1 || op == 2);
if (op == 1) {
long long a, b;
fin >> a >> b;
assert(a <= b);
//assert(a <= 100000000000000000LL && b <= 100000000000000000LL && a > 1000000000 && b > 1000000000);
long long curr = 1;
while (curr <= b) {
for (int i = 1; i <= 9; ++i)
if (a <= i*curr && i*curr <= b)
fout << i*curr << " ";
curr = curr*10 + 1;
}
fout << "\n";
}
else {
int x;
fin >> x;
assert(x <= 100);
for (int nrCif = 1; nrCif <= x; ++nrCif) {
for (int cif = 1; cif <= 9; ++cif) {
for (int i = 1; i <= nrCif; ++i)
fout << cif;
fout << " ";
}
}
fout << "\n";
}
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 #1923 egale
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1923 egale 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!