( Pesquise você mesmo )
Nenhum disco pode ser ampliado no disco pequeno, e apenas um disco pode ser movido por vez entre os três pilares. O que devo fazer?
Idéia: presumimos que n-1 discos foram colocados na torre do meio, então o enésimo disco é colocado na torre de destino e, da mesma forma, n-1 discos podem ser colocados na torre de destino.
É , obviamente, é um problema estrutura recursiva
Solução recursiva:
#include<bits/stdc++.h>
using namespace std;
void Hanoi(int n,char s,char m,char t){
if(n==1){cout<<s<<"->"<<t<<endl;return;}
Hanoi(n-1,s,t,m);
cout<<s<<"->"<<t<<endl;
Hanoi(n-1,m,s,t);
}
int main(){
int n;cin>>n;
char a,b,c;
cin>>a>>b>>c;
Hanoi(n,a,b,c);
return 0;
}