開発環境
- 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 コメント:
コメントを投稿