diff --git a/exercises/03-fibonacci/fibonacci.go b/exercises/03-fibonacci/fibonacci.go index ede80f0..426092b 100644 --- a/exercises/03-fibonacci/fibonacci.go +++ b/exercises/03-fibonacci/fibonacci.go @@ -13,10 +13,10 @@ var usage string = "usage: " + os.Args[0] + " " // a function that returns an int. // from cpython/Doc/build/html/library/functools.html // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610] -func fibonacci() func() int { - cur_fib := 0 - nxt_fib := 0 - return func() int { +func fibonacci() func() uint64 { + cur_fib := uint64(0) + nxt_fib := cur_fib + return func() uint64 { if nxt_fib == 0 { nxt_fib = 1 return 0 @@ -24,6 +24,9 @@ func fibonacci() func() int { tmp := cur_fib cur_fib = nxt_fib nxt_fib += tmp + if nxt_fib < cur_fib { + panic("overfull!!") + } return cur_fib } }