335
Turnurile din Hanoi este un joc matematic sau, dacă vreți, un puzzle. Este format din trei tije A
, B
și C
și un număr variabil de discuri, de diferite diametre. Inițial discurile sunt așezate în ordine descrescătoare a diametrelor pe tija A
, de la vârf către bază, astfel încât să formeze un turn.
Exemplu
hanoi.in
2
hanoi.out
3 A->B A->C B->C
Explicație
#include <bits/stdc++.h> using namespace std; ifstream cin("hanoi.in"); ofstream cout("hanoi.out"); void hanoi(int n , char a , char b , char c) { if(n > 0) { hanoi(n - 1 , a , c , b); cout << a << "->" << c << '\n'; hanoi(n - 1 , b , a , c); } } int main() { int n; cin >> n; char a = 'A' , b = 'B' , c = 'C'; int put = 1; for(int i = 0 ; i < n ; ++i) put *= 2; cout << put-1 << endl; hanoi(n , a , b , c); return 0; }
Comentarii