gocollatz/collatz.go

36 lines
738 B
Go
Raw Normal View History

2024-04-24 17:49:03 +00:00
package main
import (
"collatz/collatz"
2024-04-24 20:04:34 +00:00
"collatz/parsing"
"log"
2024-04-25 02:41:39 +00:00
"strings"
2024-04-24 17:49:03 +00:00
)
func main() {
2024-04-25 02:41:39 +00:00
sequence, err := runCollatz()
2024-04-24 20:04:34 +00:00
if err != nil {
log.Fatalf("Error calculating Collatz: %v", err)
}
2024-04-25 02:41:39 +00:00
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
2024-04-24 17:49:03 +00:00
}