// t1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include /** @file Resolución del problema de las Torres de Hanoi */ using namespace std; /** @brief Resuelve el problema de las Torres de Hanoi @param M: número de discos. M > 1. @param i: número de columna en que están los discos. i es un valor de {1, 2, 3}. i != j. @param j: número de columna a que se llevan los discos. j es un valor de {1, 2, 3}. j != i. Esta función imprime en la salida estándar la secuencia de movimientos necesarios para desplazar los M discos de la columna i a la j, observando la restricción de que ningún disco se puede situar sobre otro de tamaño menor. Utiliza una única columna auxiliar. */ void hanoi(int M, int i, int j); void hanoi(int M, int i, int j) { if (M > 0) { hanoi(M - 1, i, 6 - i - j); cout << i << " -> " << j << endl; hanoi(M - 1, 6 - i - j, j); } } int main() { int M; do { cout << "Número de discos: "; cin >> M; } while (M <= 0); hanoi(M, 1, 2); system("pause"); return 0; }