gocollatz/collatz.go
Logiar 61414ff5bf
All checks were successful
Run Tests / test (push) Successful in 31s
release / release (push) Successful in 29s
Write the chain on separate lines.
2024-09-11 05:33:20 +00:00

36 lines
739 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("\n-> ")
}
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
}