# PBinfo #2817 – Identice4 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Subprogramul identice are doi parametri, în această ordine, a și b, prin care primește câte un număr natural (10≤a≤b≤106). Subprogramul afișează pe ecran toate numerele naturale din intervalul [a,b] care au toate cifrele identice. Numerele afișate sunt separate prin câte un spațiu, iar dacă nu există astfel de numere, se afişează pe ecran mesajul nu exista.

Scrieţi definiţia completă a subprogramului.

Exemplu
Dacă a=700 și b=1500, se afișează pe ecran: 777 888 999 1111

Important
Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

## Cod sursă C++

```cpp
int next(int n)
{
    // n este un numar cu toate cifrele identice
    // functia determina si returneaza urmatorul asemenea numar
    int c = n % 10, nrc = 0;
    do
        nrc ++, n/= 10;
    while(n != 0);
    if(c < 9)
        c++;
    else
        c = 1 , nrc ++;
    n = 0;
    while(nrc)
        n = 10 * n + c, nrc --;
    return n;
}
void identice(int a , int b)
{
    int cnt = 0, i = 1;
    while(i <= b)
    {
        if(i >= a)
            cout << i << " ", cnt ++;
        i = next(i);
    }
    if(cnt == 0)
        cout << "nu exista";
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2817)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2817/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2817/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
