/**
* Solves the Tower of Hanoi puzzle recursively.
*
* @param {number} n - Number of disks
* @param {string} fromPeg - Source peg name
* @param {string} toPeg - Target peg name
* @param {string} auxPeg - Auxiliary peg name
* @param {Array} movesList - (Optional) Array to collect moves
* @returns {Array} - List of moves
*/
function towerOfHanoi(n, fromPeg, toPeg, auxPeg, movesList = []) {
if (n === 1) {
const move = `Move disk 1 from ${fromPeg} → ${toPeg}`;
console.log(move);
movesList.push(move);
return movesList;
}
// Step 1: Move top (n-1) disks from source to auxiliary
towerOfHanoi(n - 1, fromPeg, auxPeg, toPeg, movesList);
// Step 2: Move the largest disk to target
const move = `Move disk ${n} from ${fromPeg} → ${toPeg}`;
console.log(move);
movesList.push(move);
// Step 3: Move (n-1) disks from auxiliary to target
towerOfHanoi(n - 1, auxPeg, toPeg, fromPeg, movesList);
return movesList;
}
// Example usage
const numberOfDisks = 3;
const moves = towerOfHanoi(numberOfDisks, 'A', 'C', 'B');
console.log(`Total moves: ${moves.length}`);
Tower of Hanoi – JS

Hi thanks