package main import ( "fmt" "os" "strconv" "strings" ) func fib(x int) string { var builder strings.Builder t1 := 0 t2 := 1 builder.WriteString(fmt.Sprintf("Fibonacci Reihe: %d, %d", t1, t2)) nextTerm := t1 + t2 for i := 2; nextTerm < x; i++ { builder.WriteString(fmt.Sprintf(", %d", nextTerm)) t1 = t2 t2 = nextTerm nextTerm = t1 + t2 } return builder.String() } func check(e error) { if e != nil { panic(e) } } func writeString(filename string, s string) { data := []byte(s) err := os.WriteFile(filename, data,0644) check(err) } func readArg() int { if len(os.Args) < 2 { panic("Zu wenig Argumente\nEingabeZahl erwartet") } eingabeString := os.Args[1] eingabe, err := strconv.Atoi(eingabeString) check(err) return eingabe } func main() { eingabe := readArg() ergebnis := fib(eingabe) fmt.Println(ergebnis) writeString("fib.txt", ergebnis) }