mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 01:21:38 +08:00
fix: coding style and file format for all example.
This commit is contained in:
@@ -1,42 +1,44 @@
|
||||
// fibonacci_memoization.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
const LIM = 41
|
||||
var fibs [LIM]uint64
|
||||
|
||||
func main() {
|
||||
var result uint64 = 0
|
||||
start := time.Now()
|
||||
for i:=0; i < LIM; i++ {
|
||||
result = fibonacci(i)
|
||||
fmt.Printf("fibonacci(%d) is: %d\n", i, result)
|
||||
}
|
||||
end := time.Now()
|
||||
delta := end.Sub(start)
|
||||
fmt.Printf("longCalculation took this amount of time: %s\n", delta)
|
||||
}
|
||||
|
||||
func fibonacci(n int) (res uint64) {
|
||||
// memoization: check if fibonacci(n) is already known in array:
|
||||
if fibs[n] != 0 {
|
||||
res = fibs[n]
|
||||
return
|
||||
}
|
||||
if n <= 1 {
|
||||
res = 1
|
||||
} else {
|
||||
res = fibonacci(n-1) + fibonacci(n-2)
|
||||
}
|
||||
fibs[n] = res
|
||||
return
|
||||
}
|
||||
/*
|
||||
Output: LIM=40:
|
||||
normal (fibonacci.go): the calculation took this amount of time: 4.730270 s
|
||||
with memoization: the calculation took this amount of time: 0.001000 s
|
||||
*/
|
||||
// fibonacci_memoization.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
const LIM = 41
|
||||
|
||||
var fibs [LIM]uint64
|
||||
|
||||
func main() {
|
||||
var result uint64 = 0
|
||||
start := time.Now()
|
||||
for i := 0; i < LIM; i++ {
|
||||
result = fibonacci(i)
|
||||
fmt.Printf("fibonacci(%d) is: %d\n", i, result)
|
||||
}
|
||||
end := time.Now()
|
||||
delta := end.Sub(start)
|
||||
fmt.Printf("longCalculation took this amount of time: %s\n", delta)
|
||||
}
|
||||
|
||||
func fibonacci(n int) (res uint64) {
|
||||
// memoization: check if fibonacci(n) is already known in array:
|
||||
if fibs[n] != 0 {
|
||||
res = fibs[n]
|
||||
return
|
||||
}
|
||||
if n <= 1 {
|
||||
res = 1
|
||||
} else {
|
||||
res = fibonacci(n-1) + fibonacci(n-2)
|
||||
}
|
||||
fibs[n] = res
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Output: LIM=40:
|
||||
normal (fibonacci.go): the calculation took this amount of time: 4.730270 s
|
||||
with memoization: the calculation took this amount of time: 0.001000 s
|
||||
*/
|
||||
|
Reference in New Issue
Block a user