index — ti25-glauchau-code @ 72a1f44f3f7b9f35f97b3dcb692ffd7cc4fc06dd

Meine Lösungen (oder auch nicht) für die Programmieraufgaben in der TI25 an der Staatlichen Studienakademie Glauchau

gpt/2025-12-05/fibonacci.go (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
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)
}