|
||
---|---|---|
.github/workflows | ||
cmd | ||
internal | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
README.md |
High-performance Fibonacci numbers implementation in Go
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.