# Java Examples - Solving Tower of Hanoi

Advertisements

## Problem Description

How to use method for solving Tower of Hanoi problem?

## Solution

This example displays the way of using method for solving Tower of Hanoi problem( for 3 disks).

public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1) { System.out.println("Disk 1 from " + from + " to " + to); } else { doTowers(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); doTowers(topN - 1, inter, from, to); } } }

## Result

The above code sample will produce the following result.

Disk 1 from A to C Disk 2 from A to B Disk 1 from C to B Disk 3 from A to C Disk 1 from B to A Disk 2 from B to C Disk 1 from A to C

The following is an another sample example of Tower of Hanoi

public class TowersOfHanoi { public static void move(int n, int startPole, int endPole) { if (n== 0) { return; } int intermediatePole = 6 - startPole - endPole; move(n-1, startPole, intermediatePole); System.out.println("Move " +n + " from " + startPole + " to " +endPole); move(n-1, intermediatePole, endPole); } public static void main(String[] args) { move(5, 1, 3); } }

The above code sample will produce the following result.

Move 1 from 1 to 3 Move 2 from 1 to 2 Move 1 from 3 to 2 Move 3 from 1 to 3 Move 1 from 2 to 1 Move 2 from 2 to 3 Move 1 from 1 to 3 Move 4 from 1 to 2 Move 1 from 3 to 2 Move 2 from 3 to 1 Move 1 from 2 to 1 Move 3 from 3 to 2 Move 1 from 1 to 3 Move 2 from 1 to 2 Move 1 from 3 to 2 Move 5 from 1 to 3 Move 1 from 2 to 1 Move 2 from 2 to 3 Move 1 from 1 to 3 Move 3 from 2 to 1 Move 1 from 3 to 2 Move 2 from 3 to 1 Move 1 from 2 to 1 Move 4 from 2 to 3 Move 1 from 1 to 3 Move 2 from 1 to 2 Move 1 from 3 to 2 Move 3 from 1 to 3 Move 1 from 2 to 1 Move 2 from 2 to 3 Move 1 from 1 to 3

java_methods.htm

Advertisements