gocollatz/collatz.go
Lars M. Rogne 713f70041b
All checks were successful
Run Tests / test (push) Successful in 9s
Clean code improvements.
2024-04-25 04:41:39 +02:00

36 lines
738 B
Go

package main
import (
"collatz/collatz"
"collatz/parsing"
"log"
"strings"
)
func main() {
sequence, err := runCollatz()
if err != nil {
log.Fatalf("Error calculating Collatz: %v", err)
}
printSequence(sequence)
}
func printSequence(sequence collatz.Sequence) {
builder := new(strings.Builder)
log.Printf("Collatz sequence with %d iterations:", sequence.Iterations)
for i, num := range sequence.Sequence {
if i != 0 {
builder.WriteString(" -> ")
}
builder.WriteString(num.String())
}
log.Println(builder.String())
}
func runCollatz() (collatz.Sequence, error) {
parser := new(parsing.Cliargs)
calculator := collatz.NewCalculator(parser)
sequence, err := calculator.CalculateCollatz()
return sequence, err
}