MST

星途 面试题库

面试题:Go函数在递归调用时的边界情况处理

编写一个Go函数,该函数实现一个简单的斐波那契数列计算。在函数中需要正确处理递归调用的边界情况,比如输入为0或1时的返回值,防止栈溢出等问题。
15.4万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import "fmt"

func fibonacci(n int) int {
    if n <= 1 {
        return n
    }
    a, b := 0, 1
    for i := 2; i <= n; i++ {
        a, b = b, a+b
    }
    return b
}

你可以通过以下方式调用这个函数:

func main() {
    result := fibonacci(10)
    fmt.Println(result)
}

上述代码中的fibonacci函数实现了斐波那契数列的计算。通过迭代的方式,避免了递归调用可能导致的栈溢出问题。对于输入为0或1的边界情况,直接返回对应的数值。在main函数中,调用fibonacci函数并打印结果,这里以计算第10个斐波那契数为例。你可以根据需要修改main函数中传入fibonacci函数的参数值。