summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcd.go59
1 files changed, 29 insertions, 30 deletions
diff --git a/gcd.go b/gcd.go
index 04f772d..429c22e 100644
--- a/gcd.go
+++ b/gcd.go
@@ -23,39 +23,38 @@ import "fmt"
import "flag"
import "strconv"
-func gcd2 (a, b uint) uint {
- if b == 0 {
- return a
- }
- /* 6g issues an error "function ends without a return statement",
- if we use if ... {... return} else {... return}.
- But GCC doesn't.
- */
- return gcd2(b, a % b)
+func gcd2(a, b uint) uint {
+ if b == 0 {
+ return a
+ }
+ /* 6g issues an error "function ends without a return statement",
+ if we use if ... {... return} else {... return}.
+ But GCC doesn't.
+ */
+ return gcd2(b, a%b)
}
-func gcdn (ns []uint) uint {
- var r uint // zero by default
- for i := range ns {
- r = gcd2(r, ns[i])
- }
- return r
+func gcdn(ns []uint) uint {
+ var r uint // zero by default
+ for i := range ns {
+ r = gcd2(r, ns[i])
+ }
+ return r
}
func main() {
- flag.Parse() // without this 6g will give flag.NArg() = 0 next (WTF?)
- n := flag.NArg()
- if n > 0 {
- ns := make([]uint, n) // We have garbage collector!
-
- // Or: for i := range ns, since range of ns is equal to flag.NArg()
- for i := 0; i < n; i++ {
- // Drop the second return value (error code):
- ns[i], _ = strconv.Atoui(flag.Arg(i))
- }
-
- g := gcdn(ns)
- fmt.Printf("%v\n", g)
- }
+ flag.Parse() // without this 6g will give flag.NArg() = 0 next (WTF?)
+ n := flag.NArg()
+ if n > 0 {
+ ns := make([]uint, n) // We have garbage collector!
+
+ // Or: for i := range ns, since range of ns is equal to flag.NArg()
+ for i := 0; i < n; i++ {
+ // Drop the second return value (error code):
+ ns[i], _ = strconv.Atoui(flag.Arg(i))
+ }
+
+ g := gcdn(ns)
+ fmt.Printf("%v\n", g)
+ }
}
-