go语言用递归编写斐波那契前50项,能够输出前50项且能输出程序运行时间
时间: 2024-10-21 19:06:53 浏览: 14
Go语言中可以使用递归来编写斐波那契数列,这是一种经典的递归算法例子。以下是编写一个函数来计算并打印前50项斐波那契数列及其运行时间的示例:
```go
package main
import (
"fmt"
"time"
)
// 使用递归实现斐波那契数列
func fibonacci(n int) (int, error) {
if n <= 0 {
return 0, fmt.Errorf("输入值n必须大于0")
}
if n == 1 || n == 2 {
return n, nil
}
prev, curr := 0, 1
for i := 3; i <= n; i++ {
prev, curr = curr, prev+curr
}
return curr, nil
}
func main() {
startTime := time.Now()
fibList := make([]int, 50)
for i := 0; i < 50; i++ {
fib, err := fibonacci(i + 1)
if err != nil {
fmt.Println(err)
break
}
fibList[i] = fib
}
duration := time.Since(startTime)
fmt.Printf("斐波那契数列前50项:\n%v\n", fibList)
fmt.Printf("程序运行时间: %v\n", duration)
}
```
在这个程序中,`fibonacci` 函数负责计算第n个斐波那契数字。在`main`函数中,我们首先记录开始时间,然后循环计算前50项,并将结果存储在`fibList`数组中。最后,我们会输出计算出的斐波那契数列以及程序的运行时间。
阅读全文