📘 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.
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);
}
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.