package main
import (
"fmt"
)
func fibonacci(n int) []int {
var result []int
fn, fn_1, fn_2 := 1, 1, 0
for i := 0; i < n; i++ {
result = append(result, fn)
fn = fn_1 + fn_2
fn_2 = fn_1
fn_1 = fn
}
return result
}
func fibonacciL(n int) []int {
var result []int
fn, fn_1 := 1, 0
for i := 0; i < n; i++ {
// Tambahkan nilai fn ke dalam slice result
result = append(result, fn)
// Simpan nilai fn ke dalam fn_1, kemudian update nilai fn dengan penjumlahan fn_1 dan fn
// misalnya, jika fn = 1 dan fn_1 = 0, maka fn akan diupdate menjadi 1 + 0 = 1, dan fn_1 akan diupdate menjadi 1.
fn_1, fn = fn, fn_1+fn
}
return result
}
func main() {
fmt.Println(fibonacci(10))
fmt.Println(fibonacciL(10))
}
// 1 2 3 4 5 6
// 1 1 2 3 5 8