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)
}
|