go 写个斐波那契数列
时间: 2023-09-03 11:27:00 浏览: 98
python 实现斐波那契数列
5星 · 资源好评率100%
### 回答1:
好的,下面是一个常规实现斐波那契数列的代码:
```go
package main
import "fmt"
func main() {
n := 10
for i := 0; i < n; i++ {
fmt.Printf("%d ", fibonacci(i))
}
}
// fibonacci 函数返回第 n 个斐波那契数列的值。
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-1) + fibonacci(n-2)
}
```
这个程序将输出前10个斐波那契数列的值:0 1 1 2 3 5 8 13 21 34。
需要注意的是,这个实现是递归的方式计算斐波那契数列,效率较低。在实际应用中,可以使用迭代的方式实现,效率会更高。
### 回答2:
斐波那契数列是一个经典的数学问题,它是从0和1开始,后续的每个数字都是前两个数字之和。那么我们可以写一个函数来生成斐波那契数列。
首先,我们需要定义一个函数fibonacci,它接受一个整数n作为参数,用于确定生成斐波那契数列的长度。然后,我们定义两个变量a和b,分别初始化为0和1,用于保存当前生成的数列的前两个数字。
接下来,我们需要使用一个for循环来生成数列中的每个数字。循环从2开始,因为前两个数字已经确定了。在每次循环中,我们通过将a和b相加得到下一个数字,并将结果保存在一个临时变量temp中。然后,我们更新a和b的值,将b赋给a,将temp赋给b,这样就更新了前两个数字,为下一次循环做准备。
最后,我们将生成的数列返回。下面是完整的代码示例:
```python
def fibonacci(n):
result = []
a, b = 0, 1
for _ in range(n):
result.append(a)
a, b = b, a + b
return result
n = int(input("请输入斐波那契数列的长度: "))
fib = fibonacci(n)
print(fib)
```
例如,如果输入的n为5,则生成的斐波那契数列将是[0, 1, 1, 2, 3]。
### 回答3:
斐波那契数列是指从第三项开始,每一项都是前两项的和。斐波那契数列的前几项为:0、1、1、2、3、5、8、13、21、34、55...即第一项为0,第二项为1,后续的每一项都是前两项的和。
以下是用go语言写的斐波那契数列的代码:
```go
package main
import "fmt"
func fibonacci(n int) []int {
fib := make([]int, n) // 创建一个长度为n的数组
fib[0], fib[1] = 0, 1 // 设置数列的前两项
for i := 2; i < n; i++ {
fib[i] = fib[i-1] + fib[i-2] // 计算当前项的值
}
return fib
}
func main() {
n := 10 // 斐波那契数列的长度
fib := fibonacci(n)
fmt.Println(fib)
}
```
该代码中定义了一个函数fibonacci,该函数接收一个整数n作为参数,返回一个长度为n的斐波那契数列。主函数中调用fibonacci函数,并打印出生成的斐波那契数列。运行该程序,将会输出长度为10的斐波那契数列:[0 1 1 2 3 5 8 13 21 34]。
阅读全文