Cifra maximă a unui număr recursiv în C++

Dându-se un număr natural n, să se determine cea mai mare cifră a sa, folosind un subprogram recursiv.

Exemplu. Pentru n = 12930, răspunsul este 9.

Pentru varianta nerecursivă, urmăriți acest articol.

Abordarea problemei

Vom crea o funcție care ia ca parametru un număr natural n. Logica rezolvării este următoarea:

  • Dacă n ≤ 9 (n are doar o cifră), returnăm această cifră;
  • În caz contrar, calculăm:
    • cifra curentă (cu n % 10);
    • maximul celoraltor cifre de după cea curentă (apelăm funcția pentru n / 10n fără ultima cifră)
    • returnăm maximul dintre aceste două valori.

Implementare în C++

Iată rezolvarea în C++.

#include <iostream>

using namespace std;

int cifraMaxima(int n) {
    if(n <= 9) { //Numărul are doar o cifră, o returnăm
        return n;
    } else {
        int cifra = n % 10; //Cifra curentă
        int maximDupa = cifraMaxima(n / 10); //Maximul cifrelor de după cifra curentă
        //Returnăm valoarea mai mare dintre cifra și maximDupa
        if(cifra > maximDupa) {
            return cifra;
        } else {
            return maximDupa;
        }
    }
}

int main()
{
    //Declarăm și citim numărul nostru
    int n;
    cin >> n;

    //Afișăm cifra maximă a sa
    cout << cifraMaxima(n);
    return 0;
}

Alte resurse sau bibliografie

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te