PDA

View Full Version : @Tiger



~TraNda~
02-04-2015, 09:45 PM
Se dau patru tije notate a, b, c, d. Pe tija a se găsesc n discuri de diametre diferite, aşezate īn ordinea descrescătoare a diametrelor privind de jos īn sus. . Pe tija b se găsesc m discuri, aşezate īn acelaşi mod cu cele de pe tija a. Să se interschimbe discurile de pe tija a cu cele de pe tija b, utilizānd ca tijă de manevră tijele c şi d. La fiecare pas se mută un singur disc şi nu se aşează un disc pe altul de diametru mai mic.
E aproape asemanatoare cu problema turnurilor lui Hanoi cu 3 tije, dar ma bate grav.. :)) Daca m-ai putea ajuta cu explicatii ceva :-? .
Multumesc anticipat :D !

EDIT :
#include <iostream>

using namespace std;
void hanoi(int n, int m , char a, char b, char c, char d)
{
if(n==1 && m==1)
cout<<a<<c<<' '<<b<<d<<' '<<c<<a<<' '<<d<<b<<' ';
else
{
hanoi(n-1, m-1, a, c, b, d);
cout<<a<<b<<' ';
hanoi(n-1, m-1, c, d, b, a);
}
}

int main()
{
int n , m;
char a='a', b='b', c='c' , d='d';
cin>>n; cin>>m;
hanoi(n, m, a, b, c, d);
return 0;
}