High-performance Fibonacci numbers implementation in Go
Find a file
richardrobertreitz 0da744db72
Some checks failed
ci-workflow / ci (push) Failing after 6s
Update .github/workflows/.github-ci.yaml
2025-02-06 20:16:47 +00:00
.github/workflows Update .github/workflows/.github-ci.yaml 2025-02-06 20:16:47 +00:00
cmd Rebuild go project 2024-12-16 13:20:45 +01:00
internal Rebuild go project 2024-12-16 13:20:45 +01:00
Dockerfile Initial commit of fibonacci_http_go 2024-12-16 11:49:51 +01:00
go.mod Rebuild go project 2024-12-16 13:20:45 +01:00
go.sum Rebuild go project 2024-12-16 13:20:45 +01:00
README.md Initial commit of fibonacci_http_go 2024-12-16 11:49:51 +01:00

High-performance Fibonacci numbers implementation in Go

Build Status GitHub issues Go Report Card Coverage Status GoDoc GitHub license

In mathematics, the Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and characterized by the fact that every number after the first two is the sum of the two preceding ones:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Often, especially in modern usage, the sequence is extended by one more initial term:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Implementation Details

This implementation has three methods: Fibonacci, FibonacciBig and FibonacciFromString.

The Fibonacci function is more efficient, however, it returns correct numbers between 0 and 93 (inclusive). The FibonacciBig function, on the other hand, is less efficient but returns practically any Fibonacci number. The FibonacciFromString function accepts the input number as a string and it can return an error if the input is not a positive number. This function is used, if the app is called from the HTTP-Server.

Example:

package main

import (
  "fmt"
  "github.com/t-pwk/go-fibonacci"
)

func main() {
  fmt.Println("20:  ", fib.Fibonacci(20))
  fmt.Println("200: ", fib.FibonacciBig(200))
}

And the output is

20:   6765
200:  280571172992510140037611932413038677189525

HTTP-Server for access

A HTTP-Server is used to access the fibonacchi app remotely. The HTTP-Server can be reached on port 9090 on the path '/fibonacchi' of the server domain.

If it is used on the domain https://cnoe.localtest.me, the fibonacchi value of 1000 can be calculated using the URL https://cnoe.localtest.me/fibonacci?number=1000. The app can calculate the fibonacchi number of values up to 5.000.000. The calculated result is displayed on the HTML page.