go语言写一个斐波那契数列
时间: 2023-11-20 17:54:07 浏览: 114
下面是使用Go语言实现斐波那契数列的两种方法:
方法一:使用递归
```go
func fibonacci(n int) int {
if n <= 1 {
return n
}
return fibonacci(n-1) + fibonacci(n-2)
}
```
方法二:使用循环
```go
func fibonacci(n int) int {
if n <= 1 {
return n
}
var a, b, c int = 0, 1, 0
for i := 2; i <= n; i++ {
c = a + b
a = b
b = c
}
return c
}
```
以上两种方法都可以实现斐波那契数列,第一种方法使用递归,代码简单易懂,但是当n比较大时,递归会导致性能下降;第二种方法使用循环,性能较好,但是代码相对复杂一些。
相关问题
用Go语言写一个函数,生成一个斐波那契数列
好的,这是一个生成斐波那契数列的 Go 语言函数的示例:
```
func Fibonacci(n int) []int {
fibList := make([]int, n)
fibList[0], fibList[1] = 1, 1
for i := 2; i < n; i++ {
fibList[i] = fibList[i-1] + fibList[i-2]
}
return fibList
}
```
使用方法:
```
fibList := Fibonacci(10)
fmt.Println(fibList) // 输出: [1 1 2 3 5 8 13 21 34 55]
```
斐波那契数列的通项公式为:
F(n) = F(n-1) + F(n-2)
其中,F(0)=1,F(1)=1。
上面的代码实现了这个通项公式,并通过循环生成了一个包含 n 个数的斐波那契数列。
用go写一个斐波那契数列
好的,以下是用Go语言写斐波那契数列的示例代码:
```
package main
import "fmt"
func fibonacci(n int) []int {
if n == 0 {
return []int{}
} else if n == 1 {
return []int{1}
} else if n == 2 {
return []int{1, 1}
} else {
fibonacciSlice := fibonacci(n-1)
fibonacciSlice = append(fibonacciSlice, fibonacciSlice[n-2]+fibonacciSlice[n-3])
return fibonacciSlice
}
}
func main() {
fmt.Println("前10个斐波那契数列为:", fibonacci(10))
}
```
运行该程序,会输出前10个斐波那契数列的结果:
```
前10个斐波那契数列为: [1 1 2 3 5 8 13 21 34 55]
```
希望能够满足您的需求。
阅读全文