0

我对在 Visual Basic 中使用数组和函数非常陌生,我似乎无法弄清楚这一点。我的问题是,每当我调用该函数时,Fibo无论我给它的值是多少,它都会返回 0 n。我确信这个错误是非常基本的。

任何指针将不胜感激!

Public Function fibo(n As Integer) As Integer

    Dim arrayFib(n + 1) As Integer 'declare array to hold fibonacci

    arrayFib(0) = 0 'idem
    arrayFib(1) = 1 'declare start value

    Dim i As Integer = 2 'start position

    While i <= n
        arrayFib(i) = arrayFib(i - 1) + arrayFib(i - 2)
        i = 1 + i

    Return arrayFib(i)
4

1 回答 1

3
Dim arrayFib(n + 1) As Integer 'declare array to hold fibonacci

我们可以猜测 +1 的来源。您添加它是因为您的原始代码因 IndexOutOfRangeException 而崩溃。由于您返回 arrayFib(i),i 被递增到大于n,其值在循环后为 n+1。从而返回从未分配过的元素的值。你没有正确修复它:)

将数组声明恢复原样,并改为返回 arrayFib(n)。

于 2013-09-19T20:41:56.570 回答