From 0e29275c30784e607ecd167e5da5694fecb3ec84 Mon Sep 17 00:00:00 2001 From: "Stephen M. McQuay" Date: Thu, 2 Aug 2012 16:58:37 -0600 Subject: [PATCH] use uint64 and panic on false numbers - break piont at --- exercises/03-fibonacci/fibonacci.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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 } }