Sha256: 23dad2bb09653e33c4d017498e0db51d14f7ed7d6dc64e040b72368390f710b5

Contents?: true

Size: 378 Bytes

Versions: 122

Compression:

Stored size: 378 Bytes

Contents

package collatzconjecture

import (
	"errors"
)

// CollatzConjecture is an example implementation of the collatz conjecture exercise.
func CollatzConjecture(n int) (int, error) {
	if n <= 0 {
		return -1, errors.New("Only positive numbers are allowed")
	}

	steps := 0
	for n != 1 {
		if n%2 == 0 {
			n = n / 2
		} else {
			n = 3*n + 1
		}
		steps++
	}

	return steps, nil
}

Version data entries

122 entries across 122 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.179 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.178 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.177 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.176 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.175 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.174 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.173 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.172 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.171 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.170 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.169 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.167 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.166 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.165 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.164 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.163 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.162 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.161 tracks/go/exercises/collatz-conjecture/example.go
trackler-2.2.1.160 tracks/go/exercises/collatz-conjecture/example.go