
- Java Programming Examples
- Example - Home
- Example - Environment
- Example - Strings
- Example - Arrays
- Example - Date & Time
- Example - Methods
- Example - Files
- Example - Directories
- Example - Exceptions
- Example - Data Structure
- Example - Collections
- Example - Networking
- Example - Threading
- Example - Applets
- Example - Simple GUI
- Example - JDBC
- Example - Regular Exp
- Example - Apache PDF Box
- Example - Apache POI PPT
- Example - Apache POI Excel
- Example - Apache POI Word
- Example - OpenCV
- Example - Apache Tika
- Example - iText
- Java Tutorial
- Java - Tutorial
- Java Useful Resources
- Java - Quick Guide
- Java - Useful Resources
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to use method for solving Tower of Hanoi problem in Java
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