index — ti25-glauchau-code @ f77c8a36ac9507fced2ca2130fdd1bd5b5f8b1db

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

gpt/2025-12-05/fakultaet.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
package main

import (
	"fmt"
	"os"
	"encoding/binary"
	"strconv"
)

func fak(x int) int {
	if x==0 {
		return 1
	}

	x = x * fak(x-1)
	return x
}

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func writeInt64(filename string, n int64) {
    f, err := os.Create(filename)
    check(err)
    defer f.Close()

    err = binary.Write(f, binary.LittleEndian, n)
    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 := fak(eingabe)
	fmt.Println(ergebnis)
	writeInt64("fak.txt", int64(ergebnis))
}