Go语言实现汉诺塔算法

时间:2021-11-30 03:09:11

hano.go

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package main
import (
  "bufio"
  "fmt"
  "os"
  "strconv"
)
func main() {
  fmt.Print("输入要移动的盘子数:")
  reader := bufio.NewReader(os.Stdin)
lool:
  data, _, _ := reader.ReadLine()
  n, err := strconv.Atoi(string(data))
  if err != nil {
    fmt.Println(err)
    goto lool
  }
  hanoi(n, 'A', 'B', 'C')
}
func hanoi(n int, a, b, c byte) {
  if n > 1 {
    hanoi(n-1, a, c, b)
    fmt.Printf("%c-->%c\n", a, c)
    hanoi(n-1, b, a, c)
  } else {
    fmt.Printf("%c-->%c\n", a, c)
  }
}

以上所述就是本文的全部内容了,希望大家能够喜欢。