💻 Lecții C++ & Python🏠 Home
Turnurile din Hanoi în C++: Rezolvare Recursivă | Clasa 11
◀Divide et Impera în C++: MergeSort, Căutare BinarăBacktracking în C++: Permutări, Combinări▶
Se pregătesc resursele...

📘 Lecție de C++ pentru clasa a 11-a și BAC, cu explicații video de la profesor. Mai jos ai rezumatul. În lecția completă găsești aplicații rezolvate cu simulator, în care vezi pas cu pas cum se schimbă variabilele, compilator C++ în browser, exerciții propuse cu indicii și rezolvare, și pe Alex, asistentul care îți dă indicii, îți explică algoritmul și îți corectează codul.

🎯 Apare la BAC? Nu ca problemă separată, dar e cel mai bun exercițiu ca să înțelegi recursivitatea, care apare la BAC.

Rezolvarea recursivă

void hanoi(int n, char sursa, char dest, char aux) {
    if (n == 1) {
        cout << sursa << " -> " << dest << endl;
        return;
    }
    hanoi(n-1, sursa, aux, dest);
    cout << sursa << " -> " << dest << endl;
    hanoi(n-1, aux, dest, sursa);
}

❓ Întrebări frecvente

1. Câte mutări sunt necesare pentru n discuri? 2ⁿ - 1 mutări.

2. Câte mutări sunt pentru 3 discuri? 2³ - 1 = 7 mutări.

3. Ce rol are tija auxiliară? Ține temporar discurile de deasupra, cât timp discul cel mai mare se mută pe tija destinație.

4. Ce complexitate are rezolvarea? O(2ⁿ), exponențială: fiecare disc în plus dublează aproape numărul de mutări.

5. De ce se învață problema Hanoi? Arată foarte clar cum funcționează recursivitatea și principiul Divide et Impera.

Ce conține lecția completă?

  • ✅ Explicații video cu profesorul
  • ✅ Aplicații rezolvate cu simulator: vezi cum se schimbă variabilele la fiecare pas
  • ✅ Compilator C++ în browser: rulezi codul direct
  • ✅ Animație vizuală pas cu pas
  • ✅ Demonstrația formulei 2ⁿ - 1
  • ✅ Extensii pentru olimpiadă
  • ✅ Exerciții propuse cu indicii și rezolvare
  • ✅ Asistentul Alex: indicii, explicarea algoritmului, corectarea codului

Vezi și — alte lecții din același capitol