[Tópico clássico] Torre de Hanói

( 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;
}

 

Acho que você gosta

Origin blog.csdn.net/melon_sama/article/details/108405531
Recomendado
Clasificación