2018年8月17日金曜日

開発環境

  • macOS High Sierra - Apple (OS)
  • Emacs (Text Editor)
  • Go (プログラミング言語)

Introducing Go: Build Reliable, Scalable Programs (Caleb Doxsey (著)、O'Reilly Media)のChapter 6.(Functions)、Exercises(No. 1105)5.を取り組んでみる。

コード(Emacs)

package main

import "fmt"

func main() {
 for i := uint(0); i <= 10; i += 1 {
  fmt.Println(i, fib(i), fib1(i), fib2(i))
 }
}

func fib(n uint) (ret uint) {
 switch n {
 case 0:
  ret = 0
 case 1:
  ret = 1
 default:
  ret = fib(n-1) + fib(n-2)
 }
 return
}
func fib1(n uint) (ret uint) {
 if n == 0 {
  ret = 0
 } else if n == 1 {
  ret = 1
 } else {
  ret = fib(n-1) + fib(n-2)
 }
 return
}
func fib2(n uint) uint {
 if n <= 1 {
  return n
 }
 return fib(n-1) + fib(n-2)
}

入出力結果(Terminal)

$ go run sample5.go
0 0 0 0
1 1 1 1
2 1 1 1
3 2 2 2
4 3 3 3
5 5 5 5
6 8 8 8
7 13 13 13
8 21 21 21
9 34 34 34
10 55 55 55
$

0 コメント:

コメントを投稿