fbpx

Problema #3104 – B_Egal – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Subprogramul Egal are un parametru, n, prin care primește un număr natural cu cel puțin o cifră impară. Subprogramul returnează valoarea 1 dacă toate cifrele impare ale lui n sunt egale între ele sau valoarea 0 în caz contrar.

Scrieți definiția completă a subprogramului.

Restricții și precizări

  • 10 ≤ n ≤ 109

Exemplu

Dacă n=7727470 sau n=7240 atunci subprogramul returnează 1, iar dacă n=7921470 atunci subprogramul returnează 0.

Important

Soluția propusă va conține definiția funcției cerute. 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.

bool Egal(int n)
{
    int i = -1;
    bool ok = true;
    while(n)
    {
        int x = n % 10;
        if(x % 2 == 1)
            if(i == -1)
                i = x;
            else if(x != i)
                ok = false;
        n/=10;
    }
    return ok;
}
Comentarii

S-ar putea sa iti placa