Em đã code ok bài toán tháp Hà Nội thông thường nhưng em muốn nâng cao nó lên bằng cách:
Các vòng chỉ được chuyển theo hướng vòng tròn là A -> B, B -> C và C -> A. Ngoài ra không được chuyển ngược lại vào theo hướng khác.
Nhưng có một vấn đề xảy ra khi em code như thế này:
void Chuyen(int n, char a, char b, char c){
if (n==1)
cout<<a<<" -> "<<b<<endl;
else{
Chuyen(n-1,a,b,c);
Chuyen(n-1,b,c,a);
Chuyen(1,a,b,c);
Chuyen(n-1,c,a,b);
Chuyen(n-1,a,b,c);
}
}
Thì nó lại tạo ra những bước thừa thãi như A đến B đến C rồi lại về A.
Em muốn tham khảo xem có các cách khắc phục nào ko?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?