我在使用Visual Basic中的数组和函数方面很陌生,我似乎无法解决这个问题。我的问题是每当我调用函数Fibo
时,无论n
的值是什么,它都会返回0。我确定错误是非常基本的。
任何指针都会非常感激!
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)
答案 0 :(得分:3)
Dim arrayFib(n + 1) As Integer 'declare array to hold fibonacci
我们可以猜测+1的来源。您添加了它,因为您的原始代码与IndexOutOfRangeException崩溃。由于返回arrayFib(i),我被递增为大于而不是n,它在循环后的值为n + 1。因此返回从未分配的元素的值。你没有正确解决它:)
按原样修复数组声明,改为返回arrayFib(n)。