fbpx

Problema #1862 – CntCifKRec – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Să se scrie o funcție C++ recursivă cu trei parametri n, k, c și întoarce prin parametrul c numărul de cifre ale lui n care sunt mai mari sau egale decât k.

Restricţii şi precizări

  • numele funcției va fi cnt_cif
  • funcția va avea trei parametri: n, k, c, cu semnificația de mai sus
  • 0 ≤ n ≤ 2.000.000.000
  • 0 ≤ k ≤ 9

Exemplu

După apelul cnt_cif(2750, 4, c), valoarea lui c va fi 2.

Important

Soluţia propusă va conţine doar 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.

int cnt = 0;
void cnt_cif(int n, int k, int& c){
    if(n == 0 && cnt == 0 && k == 0)
        c = 1;
    else if(n == 0)
        c = 0;
    else{
        cnt++;
        if(n % 10 >= k)
            cnt_cif(n/10, k, c), c++;
        else
            cnt_cif(n/10, k, c);
    }
}
Comentarii

S-ar putea sa iti placa