# Golang program for implementation of Tower of Hanoi Algorithm

Tower of Hanoi, is a mathematical puzzle which consists of three towers (pegs) and more than one rings. The puzzle starts with the disks in a neat stack in ascending order of size on one rod, the smallest at the top, thus making a conical shape. Here is source code of the Go Program to implement Tower of Hanoi Algorithm

// Tower of Hanoi in Golang package main import "fmt" type solver interface { play(int) } // towers is example of type satisfying solver interface type towers struct { // an empty struct } // play is sole method required to implement solver type func (t *towers) play(n int) { t.moveN(n, 1, 2, 3) } // recursive algorithm func (t *towers) moveN(n, from, to, via int) { if n > 0 { t.moveN(n-1, from, via, to) t.moveM(from, to) t.moveN(n-1, via, to, from) } } func (t *towers) moveM(from, to int) { fmt.Println("Move disk from rod", from, "to rod", to) } func main() { var t solver t = new(towers) // type towers must satisfy solver interface t.play(4) }

C:\golang\time>go run hanoi.go

Move disk from rod 1 to rod 3

Move disk from rod 1 to rod 2

Move disk from rod 3 to rod 2

Move disk from rod 1 to rod 3

Move disk from rod 2 to rod 1

Move disk from rod 2 to rod 3

Move disk from rod 1 to rod 3

Move disk from rod 1 to rod 2

Move disk from rod 3 to rod 2

Move disk from rod 3 to rod 1

Move disk from rod 2 to rod 1

Move disk from rod 3 to rod 2

Move disk from rod 1 to rod 3

Move disk from rod 1 to rod 2

Move disk from rod 3 to rod 2

C:\golang\time>

Move disk from rod 1 to rod 3

Move disk from rod 1 to rod 2

Move disk from rod 3 to rod 2

Move disk from rod 1 to rod 3

Move disk from rod 2 to rod 1

Move disk from rod 2 to rod 3

Move disk from rod 1 to rod 3

Move disk from rod 1 to rod 2

Move disk from rod 3 to rod 2

Move disk from rod 3 to rod 1

Move disk from rod 2 to rod 1

Move disk from rod 3 to rod 2

Move disk from rod 1 to rod 3

Move disk from rod 1 to rod 2

Move disk from rod 3 to rod 2

C:\golang\time>

2017-10-07T12:02:46+05:30
2017-10-07T12:02:46+05:30
Golang Programs
Go Language Programs
Golang Program
Golang
Example and Solution