FIBONACCI SERIES
Fibonacci series looks like this
0 ,1, 1, 2 ,3, 5, 8 ,13, 21, 34 ,.....
(1) USING RECURSION
package main
import (
"fmt"
)
func main() {
fmt.Println("Enter a number")
var num int
fmt.Scanln(&num)
for i := 0; i < num; i++ {
fmt.Print(fibonacci(i), " ")
}
}
func fibonacci(n int) int {
if n == 0 {
return 0
}
if n == 1 {
return 1
} else {
return fibonacci(n-1) + fibonacci(n-2)
}
}
(2) USING DYNAMIC Programming (BUT IT IS USING EXTRA
SPACE)
package main
import (
"fmt"
)
func main() {
fmt.Println("Enter a number")
var num int
fmt.Scanln(&num)
fibonacci(num)
}
func fibonacci(n int) {
if n == 1 {
fmt.Print(0)
return
} else {
a := []int{}
for i := 0; i < n; i++ {
if i == 0 || i == 1 {
a = append(a, i)
} else {
a = append(a, a[i-1]+a[i-2])
}
}
fmt.Print(a)
}
}
(3) USING DYNAMIC Programming(WITHOUT USING EXTRA SPACE)
package main
import (
"fmt"
)
func main() {
fmt.Println("Enter a number")
var num int
fmt.Scanln(&num)
fibonacci(num)
}
func fibonacci(n int) {
if n == 1 {
fmt.Print(0)
return
} else {
var next int
prev := 0
cur := 1
for i := 0; i < n; i++ {
if i == 0 {
fmt.Print(prev, " ")
} else {
next = cur + prev
prev = cur
cur = next
fmt.Print(prev, " ")
}
}
}
}
Comments
Post a Comment